Forum: Java hjälp

Forum huvudsida -> Programmering -> Java hjälp

Sidor: 1

Till botten

hacke01 16:52 - 2:a Februari 2009 | Post #1
Medlem
Inlägg: 3


Skicka PM
HEj!

Jag ska med hjälp av en Stack jag implementerat, skapa en metod som beräknar postfix uttryck, tar en sträng av heltal och (+,-,*,/) och retunerar en int. Nån som har någon idé hur jag ska gå tillväga?

tacksam för hjälp!




kode 00:09 - 3:e Februari 2009 | Post #2
Medlem
Inlägg: 45


Skicka PM
Ja, faktiskt.

Jag föreslår att du implementerar järnvägsalgoritmen.

http://en.wikipedia.org/wiki/Shunting_yard_algorithm http://www.ida.liu.se/~jonwa/PROG-D/j%E4rnv%E4gs_och_recursive_descent
www.ida.liu.se/~tao/pub/dsa/kompendium/DoA-kompendium.pdf

Edit:
Eller missuppfattade jag kanske och du har en postfix sträng in?

I sådana fall föreslår jag att du t.ex. använder StringTokenizer, pushar objekten på stacken, och varje gång det kommer en operand så poppar du, beräknar och pushar resultatet. Till slut har du ju då enbart slutresultatet. Samma princip, dock...


Senast redigerad 00:12 - 3:e Februari 2009


hacke01 16:14 - 3:e Februari 2009 | Post #3
Medlem
Inlägg: 3


Skicka PM
Tack så mycket, fått det att funka någorlunda, antagligen på ett ineffektivt sätt, vet inte riktigt hur jag ska göra för att de ska gå smidigt mellan alla 4 räknesätt, ska kolla upp hur tokenizern funkar, har ingen koll på de...
Nu har jag skrivit en loop som använder substring för att dela upp operander och operatorer. märkte att man inte kan använda en eller operator på strängar hur ska jag göra för att få in if( "+" || "-" || "*") i samma?

En fråga till om en annan uppgift om nån har lust.

Ska skriva an klass Person som om man sätter in den i ett TreeSet sorteras efter ålder. fattar inte rikrigt uppgiften? nån som har tips till en lösning?




kode 18:58 - 3:e Februari 2009 | Post #4
Medlem
Inlägg: 45


Skicka PM
Bistå gärna med ett kodexempel på hur din if-sats ser ut mer exakt.

Din andra fråga skulle jag själv tolka som det att det är Person.ålder som TreeSet ska sortera efter. Detta innebär, om jag läst API:n korrekt, att du måste implementera interfacet Comparable. Detta innebär, ojmr (länge sedan jag lekte med Java) att prototypen till klassen Person blir nåt i stil med:

  1. public class Person implements Comparable {
  2.  
  3. }


Tittar vi sedan på vad Comparable innehåller ( http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html ) (för att implementera ett interface måste man skriva de metoder som interfacet definierar) ser vi att den enbart innehåller metoden compareTo. Du ska med andra ord i den metoden jämföra åldersvariablen på det egna personobjektet med det personobjekt som är inparameter till metoden.

Mer om interface: http://java.sun.com/docs/books/tutorial/java/IandI/usinginterface.html




hacke01 20:05 - 3:e Februari 2009 | Post #5
Medlem
Inlägg: 3


Skicka PM
Tack så jättemycke för hjälpen. Den första uppgiften lyckades jag precis lösa, blev lite kod duplicering men får va bra för tillfället.
Precis börjat hålla på med interfaces , din tolkning låter helt klart vettig och jag ska läsa på i apin. tack tack!

Sorry att ja e seg...
På det sättet jag försöker jämföra dom får jag " inte cannot be referensed" hur ska jag skriva?


Senast redigerad 20:23 - 3:e Februari 2009


kode 23:04 - 3:e Februari 2009 | Post #6
Medlem
Inlägg: 45


Skicka PM
Det känns näst intill omöjligt att veta det om du inte visar hur du skrivit och mer exakt hur felmeddelandet lyder.




Sidor: 1

Forum huvudsida -> Programmering -> Java hjälp
Atom feed

Du får inte posta i den här tråden | Till toppen