» »

java mali problem (začetnik)

java mali problem (začetnik)

ozbolt ::

http://pastebin.com/Tjn3QfAb

Noče mi delat ko je ob stringu daljšem od 3 znakov vedno false :(. Drugače pa za dva znaka dela.

Kaj je narobe z mojo sintakso.

Pa mimogrede mi bo verjetno še nekdo povedal kako je grdo rešeno in kako se elegantno popravi :)

ozbolt ::

Ugotovil da mi ne skoči na zadnji else ampak ostane na else if

Matek ::

Narobe primerjaš stringe, z '==' ne bo šlo. Klik. Sicer pa čisto ok rešeno.
Bolje ispasti glup nego iz aviona.

Zgodovina sprememb…

  • spremenil: Matek ()

ozbolt ::

A ne primerjam le char-je?

Zgodovina sprememb…

  • spremenil: ozbolt ()

detroit ::

Lep primer stric, res. My favourite:)

Drugače pa si se nekako omejil na tri znake (če ne sklepam prehitro iz te kode:)

Probaj se znebit omejitev.
Poizkušaj takole (pseudo da ti ne uničim funna:) :
string temp (dolžine vhodniniz.length);
int k = 0;
forzanka (i gre od vhodniniz.length-1 do 0)
{
temp[k] = vhodniniz[i];
k povečaj za ena
}

na uč


p.s. ja jest bi reku da preverjaš chare
Skero

ozbolt ::

detroit, lahko vstavim katerikoli string (ni važno dolžina) pa bo preverlo. Itak vedno preveri, če sta zadnji in prvi znak ista. Če sta jih obreže in spet preverja prvi in zadnji znak. Ko je enkrat samo še en znak ali noben, potem potrdi da niz je "palindrom". Če vmes znaka nista enaka potem ga zavrne. Bom poskusil po tvoje (moje znanje je omejeno zelo tako da bomo videl kok daleč bom prišel), vendar še vedno ne vem zakaj mi ne teče kakor more.

Komur se da lahko vstavi niz asdfghjklkjhgfdsa in bo videl da se nariše 8 pikic = 8 korakov. Nisem omejen :)

Zgodovina sprememb…

  • spremenil: ozbolt ()

Trinitron ::

Po hitrm pregledu morda tale vrstica v metodi middle(): String c = s.substring(1,l-1);
Bi rekel da bi moralo biti: String c = s.substring(1,l-2);

ozbolt ::

Ponavljam: (verjetno nisi videl tega edita iz prejšnega posta) Komur se da lahko vstavi niz asdfghjklkjhgfdsa in bo videl da se nariše 8 pikic = 8 korakov. Nisem omejen :)
Lepo preveri vseh osem korakov.

Terman ::

ozbolt je izjavil:

Ponavljam: (verjetno nisi videl tega edita iz prejšnega posta) Komur se da lahko vstavi niz asdfghjklkjhgfdsa in bo videl da se nariše 8 pikic = 8 korakov. Nisem omejen :)
Lepo preveri vseh osem korakov.


En debug nasvet. Namesto pike izpiši e ;)

ozbolt ::

Pogruntal rešitev... preštejmo e-je :). Samo to je bolj Microsoftovski način programiranja (grda koda) - or so I've heard

gendale ::

zakaj raje ne uporabiš string bufferja in njegove metode reverse, potem pa samo primerjaš dobljena niza?

Terman ::

A palindrom je, če ima length/2 e-jev?
Ker če je to res, še vedno ne veš zakaj stvar ne dela, čeprav bi morala. Pa še en facepalm sem naredil ko sem to prebral.

@gendale
Ker to dela za seminarsko, kjer mora uporabiti rekurzijo (le ugibam).

detroit ::

@ozbolt se posipam s pepelom upam da bom drugič bolj "prisotn" predn bom glasn (gledam freddy elm street bullshit zravn:)
Skero

Terman ::

Ker vidim, da si zadovoljen z svojo rešitvijo, ti bom povedal problem. Pozabil si na return pred isPalindrome(e) v 27. vrstici.

ozbolt ::

gendale je izjavil:

zakaj raje ne uporabiš string bufferja in njegove metode reverse, potem pa samo primerjaš dobljena niza?

Ker ne znam

@Terman, preverja, če se niz isto bere od leve proti desni ter od desne proti levi. Npr anona

Terman je izjavil:

Ker vidim, da si zadovoljen z svojo rešitvijo, ti bom povedal problem. Pozabil si na return pred isPalindrome(e) v 27. vrstici.


Ja res je. Hvala. Ampak ne razumem zakaj, bi prosil za pomoč?

Terman ::

Uf, kje začeti.

Metoda isPalindrom vrne nek boolean. Ti njene vrednosti nikjer ne obravnavaš, zato je izgubljena. Program se potem naprej izvaja in izvede vrstico 32 (kot da bi klical kako void metodo).

Je sedaj kaj bolj jasno?

Zgodovina sprememb…

  • spremenil: Terman ()

gendale ::

ozbolt je izjavil:

gendale je izjavil:

zakaj raje ne uporabiš string bufferja in njegove metode reverse, potem pa samo primerjaš dobljena niza?

Ker ne znam

	public static void main(String[] args){
		StringBuffer temp = new StringBuffer(args[0]);
		temp.reverse();
		String obratno = temp.toString();
		if(obratno.compareTo(args[0]) == 0)
			System.out.println("je palindrom");
	}

Spura ::

Ta resitev v pastebinu je dost ok napisana, je pa izredno pocasna (za vsaka 2 znaka konstruiras nov string).
Jst bi kaj takega napisal
public boolean isPalindrome(String origString) {
    isPalindrome(origString.toCharArray());
}
public boolean isPalindrome(char[] originalString) {
    final int lastLetterPos = originalString.length - 1;
    for (int i = 0; i < originalString.length;i++) {
        if (i <= lastLetterPos - i) {
            return true;
        } else if (originalString[i] != originalString[lastLetterPos - i]) {
            return false;
        }
    }
}

Pomojem najhitrejsa varianta. Od gendaleta je pa najbolj komotna.

ozbolt ::

Hvala vsem :)

Se še oglasm ko kaj ne bo šlo.

ozbolt ::

LP:
Evo, tole mi noče prav zračunat:

Mimogrede, računam ploščino med krivuljo sinx ter premicama y=0 ter x=1. Razlog: da vidim koliko je razlike med integralom ter seštevanjem malo večjih kosov...

public class OE1 {
	public static void main (String[] args) {
		int a = 5;//ne znam še funkcije inputa :)
		System.out.println(a);
		double b = sin(a);
		System.out.println(b);
	}
	public static double sin (int a) {
		double z = 0;
		int i = 1;
		while (a+1>i) {
			double t = Math.PI/(2*a)*i;
			//Vzamem srednjo vrednost med dvema različnima višinama krivulje
			double dt = (Math.PI/(2*a) + Math.PI/(2*(a+1)))/2;
			//Izračunam ploščino
			z = Math.sin(t)*dt + z;
			i = i+1;
		}
		return z;
	}
}


Zakaj?

Zgodovina sprememb…

  • spremenil: ozbolt ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# - domača naloga

Oddelek: Programiranje
162073 (1614) IceBoX
»

[C#] Input string was not in a correct format.

Oddelek: Programiranje
6986 (923) Cvenemir
»

[C#]Analogna ura

Oddelek: Programiranje
152612 (2249) cekr
»

osnove v Javi - zvezdice

Oddelek: Programiranje
403408 (2630) Tutankhamun
»

Java

Oddelek: Programiranje
71550 (1448) LukaVi

Več podobnih tem