August 2, 2003
Sitter här och försöker göra vad som ni erfarna programmerare nog tycker är hur enkelt som helst men för mig som total nybörjare står det står det helt still i skallen.
Kommer nog behöva hjälp med ett antal (högst 5 ) program men börjar med det jag håller på med nu:
Jag ska skriva en metod som tar emot två stycken strängar. För enkelhetens skull säger vi att de heter string1 och string2.
Metoden ska sen söka igenom sträng1 efter hur många gånger sträng2 finns där.
ex. sträng1:"aa sldkj laasdkjf lsdaaaaa"
sträng2:"aa"
Resultatet ska då bli 4.
Har fått tips på att det ska gå att göra med "index.of" men fattar inte alls hur jag ska göra. Jag har kollat både suns java api-bibliotek och informationen i netbeans om det men fattar inte.
Tacksam för all hjälp jag kan få.
May 8, 2001
Här kommer ett förslag till lösning. Har försökt förklara lite grann, hoppas att du förstår. Lade till en alternativ lösning också mest för skojs skull.
private int count( String string1, String string2 ) {
int index = 0;
int count = 0;
// Vi kör så länge index inte är -1 eftersom det betyder att strängen inte hittades
// Första gången så kommer det ju alltid att funka eftersom index är noll från början
// En del skulle nog tycka att en do-while vore snyggare här men jag och många med mig undviker denna form, en smaksak
while( index != -1 ) {
// Här ber vi om index för strängen vi söker efter, vi letar från index (som är noll från
// början men kommer att öka för varje sträng vi hittar
index = string1.indexOf(string2, index);
// Om index är -1 hittades inget och while-loopen kommer att avslutas
// Om index inte är -1 så räknar vi upp antal hittade strängar + att vi ökar värdet
// på index med lika många tecken som den strängen som vi letar efter är lång ( 2 i detta fall)
if( index != -1 ) {
count++;
index += string2.length();
}
}
// Returnera resultatet
return count;
}
private int count2( String string1, String string2 ) {
int index = 0;
int count = 0;
while( (index = string1.indexOf(string2, index)) != -1 ) {
index += string2.length();
count++;
}
return count;
}
Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB
August 2, 2003
Jag tackar så enormt mycket.
Och nu behöver jag hjälp med nästa program. 🙁
Denna gång är det med arrayer. Det är game of life jag ska göra.
Vad prorammet ska göra har jag mer eller mindre listat ut.
En 10*10 2-dimensionell array. För att göra det enkelt kan denna förstoras till 12*12 (förklaring kommer snart).
Denna ska sökas igenom och har en viss position tre "levande" (1) grannar så börjar punkten "leva" (0->1). Har punkten två levande grannar överlever den, alltså fortsätter vara en 1. I övriga fall dör den (1->0). Sen ska det hela skrivas ut.
Varför nu arrayen ska vara 12*12 är för annars kommer ju sökfunktionen gå utanför arrayen och det blir fel. Men genom att säga att den bara ska söka igenom 10*10 så blir det rätt.
Hur arrayen ska se ut vid start. 12*12 är den nu.
000000000000
000000000000
000000000000
000000000000
000000000000
000000110000
000001100000
000000100000
000000000000
000000000000
000000000000
000000000000
Hoppas det inte är för rörigt. Om det hjälper så ser nästa steg i "livsprocessen" ut så här.
000000000000
000000000000
000000000000
000000000000
000000000000
000001110000
000001000000
000001100000
000000000000
000000000000
000000000000
000000000000
En hemsida som förklararar bättre än vad jag gör. http://www.math.com/students/w...../life.html
Nu behöver jag huvudsakligen hjälp med hur själva sök och kolla grannar funktionerna ska vara. Eller ja, det blir ju mer eller mindre hela programmet.
May 8, 2001
Den andra uppgiften borde inte heller vara så svår...
* Skapa en int-matis på 10x10 med startvärden. ( int[][] matris = ...)
* Gå igenom alla positioner med hjälp av 2 for-loopar
* För varje position, kolla hur många ettor som finns runtomkring men se till att inte hamn utanför matrisen.
Du har ju de två for-looparna som har en av positionerna var (t.ex. x & y). Du vet ju också storleken på matrisen oavsett hur stor du gjort den -> matris[0].length och matris[0][0].lengt (med antagandet att alla arrayer i arrayen när är lika stora). Du kan annars använda 10 eftersom du ju vet att det är både "bredden" och "längden" på matrisen.
När du räknar antal ettor runtomkring måste du såklart kolla så att du inte hamnar utanför matrisen. Ingen av axlarna får var mindre än noll eller större än längden, då är det bara att låta bli att avläsa den positionen.
Om x=5 och y=0 (position noll i femte arrayen)
matris[x][y-1] - Utanför
matris[x][y+2]
matris[x-1][y-1] - Utanför
matris[x-1][y]
matris[x-1][y+1]
matris[x+1][y-1] - Utanför
matris[x+1][y]
matris[x+1][y+1]
Denna lösning använder inte "fusket" med 12x12 matrisen då du ju inte behöver kolla om du kommer utanför. Dock måste du ju ha startvärdet på 1 i for-looparna och sluta snurra innan sista.
Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB
May 8, 2001
squarepusher wrote: Eftersom du själv säger att du vill att någon annan i princip ska göra hela programmet åt dig, så sök på google och sno källkoden.
Jag kanske var lite väl "snäll" (han bad ju faktiskt inte om en komplett lösningen i sin första fråga), men nu blir det andra bullar som du ser ovan! 😉
Desktop: Gigabyte GA-MA770-DS3 | AMD Phenom II 955 BE | 8GB PC6400 | Samsung 1TB + 500GB | Powercolor HD3870
3DMark 2006: 11932 3DMark Vantage: P5137
Laptop: Macbook Pro 2012 | 8GB | Samsung 830 128GB SSD
HTPC: Mac Mini | 3GB | 500GB
May 29, 2001
jonaz wrote: [quote=squarepusher]Eftersom du själv säger att du vill att någon annan i princip ska göra hela programmet åt dig, så sök på google och sno källkoden.
Jag kanske var lite väl "snäll" (han bad ju faktiskt inte om en komplett lösningen i sin första fråga), men nu blir det andra bullar som du ser ovan! 😉
Ähh, mespropp 😛
1 Guest(s)