lenne egy kis gondom.
a probléma az alenne, hogy kaptam egy olyan feleadatot, hogy különbözű alakzatok PL: téglatest, kör, gömb, tégla lap
kerület terület és térfogat számitása.
én egyenlőre ezt leredukáltam a téglatest re ,ill (hasáb) számitására.
a következő volt a feladat, hogy vigezze el a müveletet és jelenitse meg az eredményt egy Test osztlyon keresztűl a konzolon.
a müveletet meg is írtam csak a mások osztályon való kiíratást nem tudom megoldani illetve még nem jött össze.
ha ebben segitenétek kicsit azt megköszönném.
a probléma az alenne, hogy kaptam egy olyan feleadatot, hogy különbözű alakzatok PL: téglatest, kör, gömb, tégla lap
kerület terület és térfogat számitása.
én egyenlőre ezt leredukáltam a téglatest re ,ill (hasáb) számitására.
a következő volt a feladat, hogy vigezze el a müveletet és jelenitse meg az eredményt egy Test osztlyon keresztűl a konzolon.
a müveletet meg is írtam csak a mások osztályon való kiíratást nem tudom megoldani illetve még nem jött össze.
ha ebben segitenétek kicsit azt megköszönném.
Page
viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
29 Comments
Lipka B.
Ha meg mindenáron egy másik osztállyal akarod végeztetni, akkor létrehozod a másik osztályt, benne egy függvénnyel, ami paraméterként átveszi az eredményt, aztán az említett System.stb-vel kinyomtatja
(((((((((((((((Mennyire próbáltad te megoldani ezt a feladatot ???)))))))))))))))
vaszil29
1, létrehoztam a töbmb osztályát ,és benne a metódurokat,
de elvileg kéne egy logikai változót (boolean)is beleroknom amivel még birkózom.
2, csináltam egy Test osztályt is egy másik fülön.
éps kb ennyi!!
itt a tömb osztálya.
package lessonTask;
public class Calculations {
/**
* @param args
* @param ValueOf
*/
public static void main (String args[]) {
// TODO Auto-generated method stub
/* Brick body area or circumference A * B *C*/
int a, b , c ;
a = 6; b = 4; c = 2;
a = a * b* c;
System.out.println(a);
System.out.println("Brick body volume");
int area;
// a * b;
a = 6;
b = 4;
a = a * b;
System.out.println(a);
System.out.println("area");
Lipka B.
vaszil29
public class MyCounter {
/**
* Executes a standard java operation based on the left and right operand and
* the operator given, and prints the result to the standard output.
* @param leftOp left-side operand
* @param rightOp right-side operand
* @param op string representation of a standard java operator
*/
public static void calculate(Object leftOp, Object rightOp, String op){
boolean compatible = checkTypes(leftOp, rightOp, op);
if (compatible) {
//calculate result
Object result = executeCalculation(leftOp, rightOp, op);
//print result to console
System.out.println("Sikeres számítás: " +
leftOp.toString() + " " +
op + " " +
rightOp.toString() + " = " +
result.toString());
} else {
//print error message
System.out.println("Incompatible types: " +
leftOp.getClass().getName() + ", " +
op + ", " +
rightOp.getClass().getName());
}
}
/**
* Checks if the given Classes are compatible with the given operator.
* @param leftType type (Class) of the left-side operand
* @param rightType type (Class) of the right-side operand
* @param operator string representation of a standard java operator
* @return true if the types are compatible, otherwise false
*/
public static boolean checkTypes ( Object leftOp,
Object rightOp,
String operator) {
boolean result = false;
// * / -
if (operator.equals("*") ||
operator.equals("/") ||
operator.equals("-")) {
//int or float
if ( (isIntegerType(leftOp) || isFloatType(leftOp)) &&
(isIntegerType(rightOp) || isFloatType(rightOp))) {
result = true;
} else {
result = false;
}
} else if (operator.equals("+")) {
//int or float or String
if ( ( isIntegerType(leftOp) ||
isFloatType(leftOp) ||
(leftOp instanceof String))
&&
( isIntegerType(rightOp) ||
isFloatType(rightOp) ||
(rightOp instanceof String))) {
result = true;
} else {
result = false;
}
} else if (operator.equals("%") ||
operator.equals("<<") ||
operator.equals(">>")) {
//int
if ( (isIntegerType(leftOp) ) &&
(isIntegerType(rightOp))) {
result = true;
} else {
result = false;
}
} else if (operator.equals("&&") ||
operator.equals("||")) {
//boolean, both
} else if (operator.equals("!")) {
//boolean, right only
} else if (operator.equals("<") ||
operator.equals("<=") ||
operator.equals(">") ||
operator.equals(">=")) {
//int, float, String
} else if (operator.equals("==") ||
operator.equals("!=")) {
//int, boolean
} else if (operator.equals("instanceof")) {
//any
} else {
//unknown operator
}
return result;
}
/**
* Executes a standard java operation.
* @param leftOp left-side operand
* @param rightOp right-side operand
* @param op string representation of a standard java operator
* @return The calculated result as an Object
*/
public static Object executeCalculation (Object leftOp,
Object rightOp, String op) {
Object result = null;
//cast operands
//left
long left = 0;
if (leftOp instanceof Integer){
left = ((Integer) leftOp).longValue();
} else if (leftOp instanceof Long) {
left = ((Long) leftOp).longValue();
}
long right = 0;
if (rightOp instanceof Integer){
right = ((Integer) rightOp).longValue();
} else if (leftOp instanceof Long) {
right = ((Long) rightOp).longValue();
}
if (op.equals("*")) {
result = left * right;
// result = (leftOp.getClass().cast(leftOp)) * (rightOp.getClass().cast(rightOp));
} else if (op.equals("/")){
} else if (op.equals("-")) {
}
return result;
}
/**
* Decides if the given object is of any integer-like type.
* These types are: Integer, Long, Short, Byte, Character
* @param object
* @return True if the object's type is integer-like.
*/
public static boolean isIntegerType (Object object) {
boolean result;
result = (object instanceof Integer) ||
(object instanceof Long) ||
(object instanceof Short) ||
(object instanceof Byte) ||
(object instanceof Character);
return result;
}
/**
* Decides if the given object is of any float-like type.
* These types are: Float, Double
* @param object
* @return True if the object's type is float-like.
*/
public static boolean isFloatType (Object object) {
boolean result;
result = (object instanceof Float) ||
(object instanceof Double);
return result;
}
}
vaszil29
össze kell hasonlítanom több idomot egymással és annak eredményeit
if, else elágazásokkal és ezt kell kíratnom a (Test )oldalon.
de bevallom még kicsit belevagyok zavarodva, mert csak egy hónapja tanulgatom és csak 4 órám volt.
viszont nagyon megszeretném tanulni, mert nagyon érdekes számomra. szóval nagyon zölfülű vagyok
viszont lelkes, mert érdekell.
kurvára sokat olvasok és ezért néha bele is zavarodok. ezért külön elnézésed kérném)
de kitaróan olvasok és gyakorlok.
vaszil29
miközben ide irogatok és biztos itt kicsit lefagyott az agyam. bocsi.
Lipka B.
Lipka B.
vaszil29
kocka; terület, kerület, térfogat
és ennek az eredményeit kell kiíratnom a Teszt oldalon.
de az a kérdés, hogy ha long tipusú a téglatestem illetve annak erdményei
az lehet e doubel vagy nem.
vagy ha esetleg double a végeredmény akkor lehet e int
és kell egy meghatározást csinálnom ami lehet igaz és hami is (boolean)
hogy pl a téglatest számai egész számok I vagy h.
vagy valami hasonló álítást amit ki lehet true-ban iratni a konzolon.
kb így hámoztam ki a tanár lecke felardatát, de sajna az is nagyon nehéz mert a tanár olyan mint ha a java bolygón élne és lehet, hogy a közértbe is a párizsit hexadecimális számokkal kéri. mármint ,hány (deka) párizsit vesz. 0x10 :-)
szóval kicsit nehéz a helyzet.
körübelűl annak a mintájára amit a tanár irogatott.
de azton én még nem nagyon igazodom ki.
Lipka B.
vaszil29
berakom a Test oldalt is.
public class Test {
public static void main (String args[]){
Integer leftOp = 2;
Integer rightOp = 5;
String op = "*";
MyCounter.calculate(leftOp, rightOp, op);
MyCounter.calculate(new Long(2), new Long(3), op);
}
}
vaszil29
segithetnél jobban megérteni az egész dolgot.
ha esetleg felvennél messengerre akkor tudnál segiteni, hogy én is fejlödjek.
köszti
MSN: vaszil29@freemail.hu
Lipka B.
nem is kell semmit kódolnod.
össze kell hasonlítani néhány számot. a Test lapon az op értékét "<" állítod, a leftOp és a rightOp helyére pedig a testek megfelelő paramétereit írod be, a többit a tanár kódja megcsinálja (elvileg)
MSN-em nincs, de erre van a fórum, vagy a lipka.boldizsarKUKACgmail.com-ra írhatsz
vaszil29
eltolódást a következő kurzus miatt.
viszont ezért minden anyagrész csak úgy felszinesen tanit meg. leír pár sort azstán old meg.
2 hete még egy osztályt sem tudtam megcsinálni
ma meg már osztok ,szorzok, kivonok stb.
de ezt nem a tanárnak köszönhetem, hanem inkább a magam szorgalmának, pedig sokat fizetek érte.
probálnék egy olyan embert találni aki rendesen elmagyarázza nekem emberi nyelven, nem ahogy a tanár magyaráz
mert ő hozzá nem a java 2 könyv kell, hanem az idegen szavak nagylexikonja.
szóval kb így áll a szénám.
de meg szeretném tanulni.
vaszil29
nekem az a házim amit írtam.
jó hogy te ennyire átlátod az egészet.
a házi a következő lenne:
kell a téglatest paraméterei (3 int)-el
visszadás integerrel.
és a teszt osztályon kiíratás
és kell 3 feltétel is.
na ennyit diktált le. és én ezt oldjam meg! remélem te érted.
a legjobban a 3 feltételt nem értem, hogy ezzel mit akar.
vagy hogy hogyan oldjam meg.
de mindjárt benézem a feladat lapom, hátha felrakott valami értelmesebb meghatározást.
Lipka B.
a www.nagygusztav.hu-n van egy igen jó Java-jegyzet, a java.sun.com-on dögivel angol nyelvű tutorialok
ez a vacak most működik?
vaszil29
magam akarok rájönni az egészre.
hogy tudjam.
és ha esteleg irányt mutatnál, hogy merre induljak a helyes irányba.
vaszil29
Lipka B.
public static void hasonlit(int ax, int ay, int az, int bx, int by, int bz) {
if (ax<bx)
System.out.println("Azelső kocka szélesebb");
else
System.out.println("A második kocka szélesebb");
//még két ilyen
Ennyi:)
vaszil29
majd ide írok ha elakadok.
köszi
zseni vagy!
vaszil29
bemásolom ide.
egyépként jók a sun os tutorialok, csak az a gáz, hogy angolbol nagyon vézna vagyok :-) de igyekszem
vaszil29
most már van egy teszt és egy Calkulations és egy Cube osztályom is kész eredményekkel.
összegzem.
1, Test;
2, Calculations; //Brick body: Téglatest
3, Cube: //kocka
a Calculations -ban van a, b ,c int érték
a Cube-ban van a int a;
hogyan csináljam a gettert??
vaszil29
public class Calculations {
/**
* @param args
* @param ValueOf
*/
public static void main (String args[]) {
/* Brick body area or circumference A * B *C*/
double a, b , c ,sharp , diagonal;
a = 6;
b = 4;
c = 2;
sharp = a + b + c;
System.out.println("circumference sharp");
System.out.println (sharp);
diagonal = 2 * (a * b + a * c + b * c);
System.out.println("circumference diagonal");
System.out.println (diagonal);
System.out.println("Brick body volume");
System.out.println(a);
// a * b;
c = 6;
b = 4;
a = a * b;
System.out.println("area");
System.out.println(a);
}
} //eddig jutottam
Lipka B.
Az én értelmezésemben a következőt kéne csinálni:
1,csinálni két kockát
2,írni egy függvényt, ami összehasonlítja a két kockát, és az eredményeket kiírja a konzolra
3,meghívni ezt a függvényt a main()-ből
class Brick {
public int a, b, c;
}
class Calcs {
static void compare(Brick b1, Brick b2) {
if (b1.a*b1.b*b1.c > b1.a*b2.b*b2.c)
System.out.println("Az első kocka nagyobb");
else
System.out.println("Nem, a második!!!");
}
}
class Test {
public static void main(String[] args) {
Brick b1 = new Brick(), b2 = new Brick();
b1.a = 10;
b1.b = 20;
b1.c = 15;
b2.a = 30;
b2.b = 78;
b2.c = 2;
Calcs.compare(b1, b2);
}
}
vaszil29
így jobban megértettem a lényegét.
tehát a (Test) bő hívom meg a (b1- b2)-t.
köszi szpen
ez lenne a castoás??l
Lipka B.
vaszil29
képzeld tökre megtudtam oldani a feladatot.
csak kicsit bekavarodtam a (main) és a (void) hívásoknál.
és ott is rontottam, hogy a meghatározás és a metódus közt kihagytam egy kapcsos zárójelet :-)
most megint feladta a leckét rendesen a tanárbácsi !.... :-)
vettem is egy pár sört, ahogy a NAGY MENTOR mondaná és nyirbálom az agyamat a feladatokon.
érdekesség képpen berakom neked is. :-)
1. Bemenet : 3 db szám, kimenet: a háromból a középső érték.
2. Bemenet : 2 db szám, kimenet: igaz, ha az 1. szám osztható a másodikkal, hamis, ha nem
3. Bemenet : 1 db String, kimenet: a szövegben szereplő "a" betűk száma
4a. Bemenet : 1 db szám, kimenet: igaz, ha a szám négyzetszám, hamis, ha nem
4b. Bemenet : 1 db szám, kimenet: igaz, ha a szám prímszám, hamis, ha nem
4c. Bemenet : 1 db szám és egy String, kimenet: ha a String "n" ugyanaz mint 4a,
ha astring "p" ugyanaz mint 4b, ha a string bármi más, hibaüzenet
5. Bemenet : 1 db szám, kimenet: a számot összegként értve azon bankjegycímletek kiírása
amelyekkel kifizethető az adott összeg. Címletekként a ma használatos forint címleteket
kell venni.
vaszil29
vaszil29
a feladatok mellé.
//csak hogy örüljek :-))
Algoritmusok /* Dr Iványi Péter
:-)
már annyira vágyom rá, hogy végre zsirozottan menjen a golog
és ne legyen fenakadásom.