Permalänk
Medlem

Java uppgift !

Tja!
Har fått i uppgift att skapa ett program i java. Är lite kass på det så jag tänkte be om hjälp.

Jag ska göra ett program där man som användare ska kunna slumpa fram bilnummer, kontrollera bilnummer ( vilka nummer som är OK att använda) , kolla vilka förbjudna ord som finns och sedan avsluta programmet. Det som jag klarar av själv är de 2 sista punkterna.

Skulle vilja ha hjälp med hur man skriver ett program som slumpar fram bilnummer och kontrollerar vilka nummer man får använda.

Väntar ivrigt på svar

Visa signatur

Intel i7 920 (D0) 2.66GHz @ 4GHz Noctua NH-U12P SE1366 | Corsair 6GB DDR3 Triple Channel XMS | Asus P6T SE | Radeon HD4870 1GB DDR5 | Samsung F3 500GB | Corsair 650W | Antec Three Hundred | 22" Benq

Permalänk
Medlem

Du vet vell att man inte får be om hjälp till skoluppgifter såhär om du inte har tillåtelse av läraren. En stor del av programering går ut på att man ska ta reda på hur du ska lösa ett problem, om någon gör en färdig kod åt dig så lär du dig ingenting. Googla efter slump-funktioner och lär dig från grunden, det underlättar senare.

Visa signatur

Man lever bara en gång, man har inte tid och sova, drick kaffe istället.

Permalänk
Medlem

Tänkte väl att någon skulle säga det men jag vill som sagt ( kanske skrev det otydligt ) inte ha hjälp med självaste koden. Vill veta hur man ska bygga upp den.

Visa signatur

Intel i7 920 (D0) 2.66GHz @ 4GHz Noctua NH-U12P SE1366 | Corsair 6GB DDR3 Triple Channel XMS | Asus P6T SE | Radeon HD4870 1GB DDR5 | Samsung F3 500GB | Corsair 650W | Antec Three Hundred | 22" Benq

Permalänk
Medlem

Det är ju bara att ha en array med ord som inte får vara med och sedan jämföra med dessa ord när du slumpar.

Permalänk
Medlem

Ok tänkte på det faktiskt. Det enda som e svårt är hur man programmerar slumpprogrammet. Finns det mallar för sånt?

Länka gärna.

Visa signatur

Intel i7 920 (D0) 2.66GHz @ 4GHz Noctua NH-U12P SE1366 | Corsair 6GB DDR3 Triple Channel XMS | Asus P6T SE | Radeon HD4870 1GB DDR5 | Samsung F3 500GB | Corsair 650W | Antec Three Hundred | 22" Benq

Permalänk

Det är väl inga större problem att slumpa ut ett tal mellan 0 och 999? Därefter kan du slumpa fram en siffra som skall representera en bokstav, som du sedan översätter och lägger till på strängen. En smart översättning kan vara att använda sig av exempelvis någon metod för asciitabkod som automatisk översättare om man vill ha lite kod. Det är iaf lätt i C, Å, Ä, Ö finns inte med i bilnummerm så då slipper man även fixa dem manuellt.
Hur man mer exakt gör, ja det är en läxa så...

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Att slumpa nummer verkar inte så svårt: http://www.cs.geneseo.edu/~baldwin/reference/random.html

Unika tal ur array (om du kan tyska..): http://www.galileocomputing.de/openbook/javainsel5/javainsel0... (tror jag.. )

Permalänk
Medlem

Inte vilken uppgift som helst. Det är KTH som jag gör den åt och de kräver mkt utav mig och koden

Visa signatur

Intel i7 920 (D0) 2.66GHz @ 4GHz Noctua NH-U12P SE1366 | Corsair 6GB DDR3 Triple Channel XMS | Asus P6T SE | Radeon HD4870 1GB DDR5 | Samsung F3 500GB | Corsair 650W | Antec Three Hundred | 22" Benq

Permalänk
Medlem

För att få fram ett slumptal så är ju java.util.Random ett hett tips.

//C

Permalänk
Medlem

Du går en kurs för java, där en inlämningsuppgift är ett program med en slump funtion.

Fick ni ingen bok till kursen?

Permalänk

finns ju även Math.random() för slumptal.

EDIT: skrev fel

Visa signatur

[AMD Athlon64 4400+ ][Geforce 8800GTS][ASUS M4N-SLI]
[3x300gb i RAID0, 500 gig och en 74gb raptor = 1474 GB]

Permalänk
Medlem

Nej ingen bok. Man får inga böcker. Man köper.

De komplement som vi fått står det inte så mkt om "random" koder.

Visa signatur

Intel i7 920 (D0) 2.66GHz @ 4GHz Noctua NH-U12P SE1366 | Corsair 6GB DDR3 Triple Channel XMS | Asus P6T SE | Radeon HD4870 1GB DDR5 | Samsung F3 500GB | Corsair 650W | Antec Three Hundred | 22" Benq

Permalänk
Medlem

Har du köpt boken som hör till kursen?

Permalänk
Medlem

Kom igen nu, hela grejen med såna här uppgifter är att du ska lära dig att göra dem, inte att någon ska berätta hur du ska göra den och så ska du sätta dig och tugga kod. Lita på mig. Sätt dig och försök rita lite över hur du tror att du ska få fram önskat resultat. Sen kikar du bara i API:n och googlar lite efter tutorials så har du snart ett fint resultat. Lycka till.

Visa signatur

En fisk...

Permalänk
Medlem

Fast jag tycker att du ska klaga på läraren.

Att han ger er uppgifter som ni inte kan lösa med tillhörande böcker...

Permalänk
Hedersmedlem

Inte direkt ett perfekt exempel men jag har gjort en relativt enkel kod utan att använda något som speciellt avancerat. Detta är inget skönhetsexempel utan det är mest som ett test på hur man kan göra för att du ska kunna testa och förstå vad olika saker gör... Man lär sig inget på att plagiera...

Läs och förstå i APIn den hjälper hur mycket som helst.
http://java.sun.com/j2se/1.4.2/docs/api/

import java.util.*; public class Bilnummer { public static void main(String[] args) { String bilPlat = ""; //Skapar ett objekt av typen Random som har metoder för att slumpa tal. Random slump = new Random(); //Skapar bokstäverna genom att slumpa ett tal mellan 0-26 och sedan //addera 65 vilket är där A startar i ASCII-tabellen. Denna int //är sedan konverterad till en char för att få en bokstav och sedan //till en String som läggs till i slutet av bilPlat for (int i=0; i<3; i++) { bilPlat = bilPlat + String.valueOf((char)(slump.nextInt(26)+65)); } //Slumpar ett tal mellan 0-9. for (int i=0; i<3; i++) { bilPlat = bilPlat + slump.nextInt(10); } System.out.println(bilPlat); } }

### UPPDATERAT... ####

import java.util.*; public class Bilnummer { public static void main(String[] args) { String plate = createPlate(); if (isPlateValid(plate)) { System.out.println(plate+" is a valid Plate in Sweden."); } else { System.out.println(plate+" is NOT a valid Plate in Sweden."); } } //Skapar en nummerplåt public static String createPlate() { Random random = new Random(); String tempPlate = ""; for (int i=0; i<3; i++) { tempPlate = tempPlate + String.valueOf((char)(random.nextInt(26)+65)); } for (int i=0; i<3; i++) { tempPlate = tempPlate + random.nextInt(10); } return tempPlate; } //Kollar om nummerplåten finns i den förbjudna listan... public static Boolean isPlateValid(String plate) { String[] forbiddenLetters = {"GOD","MTV","KUK","FFS"}; String[] forbiddenNumbers = {"666","999","424","555"}; for(int i=0; i<forbiddenLetters.length; i++) { if(plate.substring(0,3).equals(forbiddenLetters[i])) { return false; } } for(int i=0; i<forbiddenNumbers.length; i++) { if(plate.substring(3,6).equals(forbiddenNumbers[i])) { return false; } } return true; } }

Permalänk
Medlem

Tack ska kolla igenom koden.

Hur många ggr ska jag behöva säga det? Jag vill inte plagiera lr nåt. Ville inte ens se koder. Vill ha en struktur.

Ge mig feedback lr inget alls.

Visa signatur

Intel i7 920 (D0) 2.66GHz @ 4GHz Noctua NH-U12P SE1366 | Corsair 6GB DDR3 Triple Channel XMS | Asus P6T SE | Radeon HD4870 1GB DDR5 | Samsung F3 500GB | Corsair 650W | Antec Three Hundred | 22" Benq

Permalänk
Medlem

Alla uppgifter som jag ska lösa kan jag finna lösningarna på i boken som hör till
kursen. problem burkar uppstå när jag ska fixa ett bättre betyg genom att förbättra
programet på olika sätt. Så jag undrar fortfarande hur det kommer sig att du ska
slumpa tal i ett program och det inte står i din litteratur.

Sen lär sig rätt få programmera utan att se kod...

Man tittar på kod, ta reda på och lära sig förstå vad varje rad i koden gör. När man
kan det så kan man skriva kod på egen hand.

Det är skillnad mellan att copy/pasta kod och inte förstå vad den gör
och att plugga koden och sedan skriva den själv och förstå hur det funkar.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Garnax
Alla uppgifter som jag ska lösa kan jag finna lösningarna på i boken som hör till
kursen. problem burkar uppstå när jag ska fixa ett bättre betyg genom att förbättra
programet på olika sätt. Så jag undrar fortfarande hur det kommer sig att du ska
slumpa tal i ett program och det inte står i din litteratur.

Det är väl bara så att han inte har köpt litteraturen och det är därför han inte har någon bok som det står i.

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Citat:

Ursprungligen inskrivet av Garnax
Alla uppgifter som jag ska lösa kan jag finna lösningarna på i boken som hör till
kursen. problem burkar uppstå när jag ska fixa ett bättre betyg genom att förbättra
programet på olika sätt. Så jag undrar fortfarande hur det kommer sig att du ska
slumpa tal i ett program och det inte står i din litteratur.

Läser du på högskole/universitet nivå? För det är inte precis ovanligt tom i ”A nivåkurserna” att man får använda andra informationskällor än de rekommenderas som referenslitteratur. Och "kursböcerna" är det såklart en självklarthet, att man på något sätt skall ha tillgång till.
Ang kurslitteraturen så har inte KTH så låg nivå på sina kurser, så de inte ens tar upp random på en java kurs eller hur man kan ta reda på hur metoden fungerar.
Problemet var väl att trådskaparen saknade programmeringserfarenhet, och då kan det vara svårt att lista ut hur man slumpar fram bokstäver. Vilket han bara efterfråga hur man kunde göra, och ej en komplett lösning.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

ett stående tips: API
http://java.sun.com/j2se/1.5.0/docs/api/
Sedan kan du kika på sidorna:
http://www.cs.lth.se/EDA011/winter/archive.shtml
http://www.cs.lth.se/EDA011/autumn/archive.shtml

Där det finns lite föreläsningsanteckningar...
Ang. kommentaren: "Nej ingen bok. Man får inga böcker. Man köper."
Varför köper du inte boken då? Inte allt för dyrt, alltid bra att ha referenslitteratur...

Lycka till, hoppas du fått nått vettigt svar.

Visa signatur

weeeee

Permalänk
Medlem

Man lär sig ganska snabbt när man läser programering att dom uppgifter man får inte bara går att lösa med dom böcker man har, man måste kolla runt, tänka lite själv eller ha många böcker, sånt är livet när man programear.

Det är lika bra att du vänjer dig vid det nu, för det kommer nog komma fler uppgifter som ni inte kan lösa med bara boken, t.ex. jag läser VB programering, vi har fått en uppgift att skriva ett chatprogram, vi ska använda oss av WINSock, och det hittar man inte i VB boken, det finns i egna böcker eller på hemsidor. Det är bara å leva med:)

Visa signatur

Man lever bara en gång, man har inte tid och sova, drick kaffe istället.

Permalänk
Medlem

Ok ska väl svara på era frågor.
1. Jag läser på högskolenivå.
2. Kursen jag läser är ingen vidare fördjupning i kursen java. Visst, vi lär oss programmera lite djupare.
3. Vid kursen start var man rekommenderad att köpa ett kompedium från institutionen. Har frågat många om man ska köpa boken men oftast är det så att kompendiet är bättre.
4. Jag har kompendiet, sen finns det frågan om att förstår man det som står där eller inte?
5. Min fråga till er var att bara få hjälp med uppbyggnaden av programmet, inte att ni skulle skriva kod. En sorts algoritm skulle vara bra att ha tillhanda innan man skriver koden.

Några mer frågor?

Tack iaf för all information.

PS. Böcker är dyra

Visa signatur

Intel i7 920 (D0) 2.66GHz @ 4GHz Noctua NH-U12P SE1366 | Corsair 6GB DDR3 Triple Channel XMS | Asus P6T SE | Radeon HD4870 1GB DDR5 | Samsung F3 500GB | Corsair 650W | Antec Three Hundred | 22" Benq

Permalänk

Jag kan för hela min värld inte förstå vari dina svårigheter ligger.

http://java.sun.com/j2se/1.5.0/docs/api/index.html

Där har du API-specifikationen för java, den innehåller all information som du behöver för det här projektet.

Från det du skriver så har jag förstått att du behöver hjälp med att "designa" en metod som ska kunna slumpa fram ett registreringsnummer för en bil på formen XXX ### där X är bokstäver och # är siffror.

En enkel lösning på teckenproblemet är att skapa en konstant array som innehåller alla tecken från A till Z. Den här arrayen kan du kombinera med en slumptalsgenerator Random som ligger i java.util.Random för att slumpa fram de tre bokstäver du ska ha. Därefter så kan du använda en slumpgenerator för att slumpa fram tre nummer mellan 0 och 9.

Kontatenera alla dessa till en sträng och jämför den med de förbjudna ord som finns. Exakt hur du gör detta beror lite på hur dina s.k. förbjudna ord är strukturerade men det handlar troligen om en enklare form av parser.

Det finns givetvis elegantare lösningar men det är inte vad vi är ute efter just nu, eller hur?

Hoppas att detta är ett svar på dina fråga.

Visa signatur

2xHP w2207, Intel C2D E6750, Gigabyte P35-DS3, Corsair Twin2X2048-6400C4, XFX Geforce 8800GTS, 400GB HDD[br]
Athlon 64 3200+ "Winchester", ASUS A8N-SLI deluxe, Corsair TWINX1024-3200XL, XFX Geforce 6800GT@ULTRA, 160GB HDD