- One mobilszolgáltatások
- iPhone topik
- Íme az új Android Auto!
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy Fit 3 - keveset, de jól
- Honor Magic6 Pro - kör közepén számok
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
Gyuri16
senior tag
válasz
fatal` #11934 üzenetére
"An unmodifiable collection is not necessarily immutable. If the contained elements are mutable, the entire collection is clearly mutable, even though it might be unmodifiable. For example, consider two unmodifiable lists containing mutable elements. The result of calling list1.equals(list2) might differ from one call to the next if the elements had been mutated, even though both lists are unmodifiable. However, if an unmodifiable collection contains all immutable elements, it can be considered effectively immutable. "
-
Gyuri16
senior tag
válasz
btraven #11381 üzenetére
Itt csak a megnevezesekben van kis kavarodas. Es abban, hogy a mapper fuggvenynel a Function volt generikus, itt pedig a src es dest valtozok (tipikusan valamilyen Collection).
A valtozok felhasznalasat kell nezni. A src egy Collection, ebbol a copy fuggveny olvasni fog ("The src argument provides the data to be copied"). Tehat a src egy producer.
A dest valtozo az eredmeny, ebbe a fugveny irni fog, tehat consumer. "the dest argument accepts data" -
Gyuri16
senior tag
válasz
btraven #11376 üzenetére
Ha nem akarsz rajta gondolkodni, akkor eleg megjegyezni hogy "Producer extends Consumer super" - PECS.
mapper fuggveny elso parametere a bemenet, ez consumer. A masodik az eredmeny ez a producer.
Ha erdekel bovebben, akkor lehet itt kezdeni: [link]
Igaz collectionokrol van szo, de a lenyeg ugyanaz.map fuggvenynel maradva, vegyunk egy konkret mapper implentaciot.
mapper fuggveny parametere egy valtozo. Azt akarod, hogy a valtozo el tudjon tarolni egy T tipusu objektumot. Milyen lehet a valtozo tipusa? Nyilvan lehet T. Lehet-e T-tol leszarmazott osztaly? Nem, mert akkor nem tudna egy T tipusu objektumot tarolni (pl. Integer valtozoba nem lehet Object-et tarolni). Lehet-e T elodje? Igen, altalanosabb tipusu valtozoba lehet leszarmazott osztalyt kuldeni. (ismet: Object-be lehet Integert). Ezert super.Nezzuk a mapper fuggveny eredmenyet. Itt azt szeretned, ha egy R tipusu valtozoba el lehetne menteni.
R eredmeny = mapper(bemenet);
Milyen osztalyokra igaz ez? R lehet. R elodje nem lehet (Integerbe Object-et). R-tol leszarmazott lehet. Ezert extends.Ha eloszor foglalkozol ezzel, kicsit zavaros lehet. Ajanlom, hogy probald ki egy egyszeru A->B->C hierarchian Collectionokkel (ami a linkben van).
mod: amig irtam, nyilvan megeloztek
most mar itthagyom, hatha segit a magyar verzio.
-
Gyuri16
senior tag
válasz
audiophile2! #11339 üzenetére
Hátránya hogy lassabb mert van közben egy metódus hívás.
Nem feltetlenul, compiler ilyen dolgokat tud optimalizalni.
Az elonyokrol mar irtak a tobbiek. Ha bovebben erdekel nezz utana valamilyen objektumorientalt programozasrol szolo konyvben/cikkben mirol szol az encapsulation.
Ezeknek az OOP elveknek az elonye altalaban akkor latszik, ha az ember valami bonyolultabbat csinal. Vagy ha az eredetileg egyszeru osztalyokba uj dolgot kell hozzaadni. Ilyenkor elonyos ha mar az elejetol ugy volt irva a kod, hogy kesobb konnyu legyen valtoztatni. Viszont nyilvan tulzasba esni se jo, felesleges tulbonyolitani egy egyszeru kodot csak azert, mert egyszer lehet hogy szukseg lesz ra.
Peldadhoz visszaterve: ha letrehoznal kesobb egy olyan osztalyt, ahol az x koordinata erteke csak egy kisebb intervallumbol lehet, akkor sokkal egyszerubb lesz megoldanod, ha a kodban mar van egy setter. Anelkul minden egyes helyet ahol uj erteket allitasz be at kell irnod.
-
Gyuri16
senior tag
válasz
smallmer #8673 üzenetére
hat akkor legyen static.. szabad tudni hol tanitjak ezt? (akar privatban is)
de akkor ne konstruktorban allitsd be az erteket, hanem meg az elott, hogy letrehoznad az elso peldanyt.masik kerdesre: synchronized blokkot csak oda tedd ahol hozzafersz a valtozohoz, ne az egesz run metodusra
-
Gyuri16
senior tag
válasz
smallmer #8670 üzenetére
static valtozokat csak indokolt esetben illik hasznalni (ez nem az).
helyedben letrehoznek egy Egyenleg osztalyt, amibol a program elejen letrehoznek egy peldanyt, amit aztan konstruktorban atadnam a Beadando objektumoknak. az egesz szinkronizacios moka pedig ebben az Egyenleg osztalyban lehetne. Termeszetesen ez csak egy lehetoseg, jobb lenne, ha magad talalnad ki az alapjan amit tanitottak.
magyar valtozonevekkel szerintem nincs semmi gond, amig nem probalsz ekezeteket beletenni.
-
Gyuri16
senior tag
válasz
smallmer #8667 üzenetére
igen.
az elso valaszomban is irtam, hogy most minden ugyfelnek/szalnak sajat egyenlege van. a feladat lenyege, hogy egy valtozohoz ferjen hozza az osszes szal es biztositsd, hogy korrekt modon irjak/olvassak a tartalmat. probald meg parszor lefuttatni a programod, es figyeld az egyenleg valtozasat: lesznek benne ugrasok.megoldani tobbfelekepp lehet, ugyhogy ajanlom nezd at, hogyan csinaltatok hasonlot - egy valtozohoz hozzaferni tobb szalbol.
mod: a program vege kiiratast a main fuggvenybe tedd ne a szalakba
-
Gyuri16
senior tag
válasz
smallmer #8665 üzenetére
ugy jo.
ez helyett:
if(rand_szam2 > i_kezdet ){
i_kezdet-=i_kezdet;
}else{
i_kezdet-=rand_szam2;
System.out.println("kivesz: " + rand_szam2);
System.out.println("Új egyenleg: "+ i_kezdet);
}inkabb igy:
if(rand_szam2 > i_kezdet ){
i_kezdet-=i_kezdet;
}else{
i_kezdet-=rand_szam2;
}
System.out.println("kivesz: " + rand_szam2);
System.out.println("Új egyenleg: "+ i_kezdet); -
Gyuri16
senior tag
válasz
smallmer #8663 üzenetére
el kell menteni a letrejovo objektumot egy valtozoba. Ha csak egy objektumot hoznal letre akkor igy nezne ki a main fuggvenyed vege:
Beadando beadando = new Beadando(kezdeti_egyenleg);
beadando.start();
beadando.join();neked ugyanezt kell megcsinalnod, csak ciklusban. Letrejovo objektumok referenciait nem egy sima valtozoban fogod tarolni, hanem egy listaban. Tehat az elso ciklusban letrehozod az objektumokat, eltarolod egy listaban es meghivod a start() fuggvenyt. Miutan mindet elinditottad egy masik ciklusban vegigmesz a listan es mindegyikre meghivod a join() fuggvenyt.
-
Gyuri16
senior tag
válasz
smallmer #8661 üzenetére
itt a hiba:
for (int i=1; i<=felhasznalok_szama; i++) {
new Beadando(kezdeti_egyenleg).start();
}
for (int i=1; i<=felhasznalok_szama; i++) {
new Beadando(kezdeti_egyenleg).join();
}a masodik ciklusban az elsoben letrehozott beadando objektumokon kellene a join() fuggvenyt meghivni. Igy letrehoz egy uj objektumot, es azon var.
Azon kivul van meg par problema a programmal:
minden szalnak kolon egyenlege van, nem ugyanahhoz a valtozohoz fernek hozza
ez nem tul szep es nem is effektiv: synchronized (Szalak.class) -
Gyuri16
senior tag
-
Gyuri16
senior tag
sziasztok,
egy SOAP webservicet gyartok, es nem igazan sikerul a kovetkezo: a SOAP request header reszeben kapok parametereket, es ez alapjan szinten a header reszben kell rajuk valaszolnom. Irtam egy SOAPHandlert, amivel hozza tudok ferni a headerhez, de nem tudom osszekapcsolni a request/response parost. A handleMessage fuggveny ugye meghivodik amikor a keres jon be es amikor a valasz megy ki. A kinom az, hogy amikor a valaszt gyartanam mar nem ferek hozza (?) a keres headerjehez.Valaki tudna segiteni, hogyan kell ezt megoldani? Azt lattam, hogy elvileg egy konkret fuggveny parameteret be lehet allitani a WebParam annotacio header attributumaval, de nekem ez tobb fuggvenyre es osztalyra is kellene, tehat jobb lenne az altalam probalt irany (minden service ele rakni csak egy annotaciot, fuggvenyek ne tudjanak rola).
-
Gyuri16
senior tag
válasz
WonderCSabo #7396 üzenetére
az autoboxing soran meghivott Integer.valueOf cacheeli a kis szamokat, ezert ugyanaz az objektum lesz mind a ketto. Ugyanaz nagy szammal nem fog mukodni.
masik hasonlo:
String a = "alma";
String b = "alma";
System.out.println(a == b); //trueez is egy optimalizacio eredmenye
emvy: a felso hatar allithato: -XX:AutoBoxCacheMax
-
Gyuri16
senior tag
-
Gyuri16
senior tag
válasz
Aethelstone #7386 üzenetére
hat akkor nevetni fogsz: nalunk a kod legnagyobb resze meg 5-os es egyelore nem lehet updatelni. szerencsere utobbi evben en nagyreszt egy uj projekten dolgozok amit 8-assal kezdtunk, de aztan vissza kellett lepni 7-esre (mert JET nem tamogatja meg a 8-ast)
-
Gyuri16
senior tag
scala engem is erdekel, en ezt akarom atnezni bevezetokent: [link] aztan ha meg nem unom akkor ezt: [link]. leginkabb csak jatek szinten erdekel, reg nem tanultam valamit just for fun..
munkaban javat hasznalunk, es nem ritkan szeretnek valami kifejezobb nyelvvel dolgozni. remelem belathato idon belul hasznalhatunk java8-at, kivancsi vagyok lambdak es collection streamek mennyire lesznek hasznalhatoak.
-
Gyuri16
senior tag
válasz
WonderCSabo #3363 üzenetére
persze, lehet igy is, csak nem latom ertelmet a lazy init.-nek. Singletonnal mast nem lehet csinalni, csak meghivni a getInstance fuggvenyet, ekkor betolti a classloader es letrejon az objektum is. Te szokod hasznalni az osztalyt anelkul, hogy szukseg lenne peldanyositani?
-
Gyuri16
senior tag
amig van referencia az objektumra, addig a gc nem torli. Singleton eseteben tobbnyire azt jelenti, hogy amig fut a program addig letezik az objektum is (amig van referencia a classloaderre).
masik dolog: nem ajanlom, hogy igy implementald a singletont, a lazy initialization tobb threades kornyezetben kellemetlenseget okoz. egyszerubb igy
private static MyClass myClassInstance = null ;
helyett
private static MyClass myClassInstance = new MyClass(); -
Gyuri16
senior tag
Integer s = 8;
ilyenkor autoboxing miatt az Integer.valueOf(int) kerul meghivasra, ami cacheli a -128 tol 127ig terjedo szamokat, hogy gyorsabb legyen:private static class IntegerCache {
private IntegerCache(){}
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
}
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
} -
Gyuri16
senior tag
is.Close() bezarja a streamet amibol masodjara olvasni akarsz,ezert IOExceptiont kapsz. a stream itt a System.in, amit nem jo bezarni.
en nem csinalnak minden esetben uj BufferedReadert, mert az, ahogy a neve is mondja bufferel. ez azt jelenti, hogy tobbet is olvas(hat) az alatta levo streambol mint amennyi kell, azert, hogy a legkozelebbi olvasasnal keznel legyen az adat. egy streamet egy BufferedReaderrel illik olvasni.
-
Gyuri16
senior tag
Bruce Eckel: Thinking in Java
a weboldalon le is lehet tolteni (igaz csak a regebbi verziot) ingyen. az ujabb verzio sem tul uj, viszont elindulni szerintem jo.masik konyv az Effective Java. igaz ezt meg nem olvastam, de szoktak ajanlani. rajta van a listamon
-
Gyuri16
senior tag
válasz
csabyka666 #2358 üzenetére
nincs sokkal hatekonyabb algoritmus, ha a futasi idot nezed. linearis idonel jobbat nem tudsz csinalni. masik kerdes a biztonsag. ezt a titkositast ha eleg hosszu a szoveg akar papiron is fel lehet torni.
megfelelo kriptografia hasznalata bonyolultabb kerdes, attol fugg a kerdezonek mire kell. ha egy iskolai feladat kezdo programozonak, akkor akar lehet ezt is implementalni, ha viszont tenyleg titkositas a cel, akkor valamilyen szabvanyos algoritmust erdemes hasznalni. -
Gyuri16
senior tag
jdbc kerdesem lenne. van egy date tipusu mezom, amit prepared statementes setDate-el akarok feltolteni, viszont a gond az, hogy igy csak a datumot menti el, az orakat kinullazza. neten azt talaltam, hogy ez igy van jol, viszont nekem kellene oda a pontos ido is (a mezo tipusat nem lehet megvaltoztatni). kiprobaltam setTimestamp-et ugyanerre a mezore, es mukodott is (az idot is elmentette), viszont nem tudom ez mennyire megbizhato. van valakinek tapasztalata ezzel, mit kellene csinalnom?
-
Gyuri16
senior tag
-
Gyuri16
senior tag
d:type azt jelenti, hogy a d namespace type elementje. xml namespacek nagyjabol ugyanugy mukodnek mint c++ban. egy dokumentumon belul hasznalhatsz tobbet is, ezt kell a gyokerelementben definialni. a default namespace a xmlns es ha tobbet akarsz akkor xmlns:d formaban kell irni. kesobb pedig az elementekre ezzel a nevvel hivatkozol, tehat pl d:type. az hogy konkretan milyen betut rendelsz hozza mindegy, csak a xmlns attributumnak legyen beallitva a megfelelo URI. ha ezt az xml dokumentumot masnak kuldod feldolgozni, akkor jo lenne ha kompatibilisre csinalnad.
javaban az NS vegzodesu fuggvenyekkel lehet megnevezni a hasznalni kivant namespacet -
Gyuri16
senior tag
válasz
cellpeti #1689 üzenetére
ahogy nezem mar az osszes programozos topicban megkerdezted, hogy milyen konyvet/kornyezetet ajanlotok kezdoknek xy nyelvhez? pl legutobb egy honapja delphi.. ebben a topicban is mar szoltal hozza, akkor netbeanseztel, most meg megint kerdezed, hogy miben kell java-t kodolni. azt ajanlom, hogy tanuld azt amit suliban nyomatnak. ha jol tudom nalatok java masodikban van. ha elsos vagy akkor csinald azt amit akarnak toled (gondolom c/c++), nem hiszem, hogy ez a jo megoldas, hogy ennyi nyelvbe belekezdesz, de a for ciklusnal nem jutsz tovabb sehol. ha egy c alapu nyelvet megtanulsz jol, akkor szinte az osszeset tudod alapszinten hasznalni. konyvet nem tudok, ha masodikos vagy akkor figyelj oda oran. neten van egy rakas tutorial hello world szintu programokhoz, tovabb meg mar latod mit szeretnel, mi nem megy.
ezt ne vedd tamadasnak, csak fura, hogy ennyi mindent elkezdesz. ha egyet tovabbviszel, akkor tobbe nem kell kezdo szinten kinlodnod a tobbivel. programozni/algoritmikusan gondolkodni tanulj meg, es ne egy konkret nyelvet
-
Gyuri16
senior tag
válasz
drachos #1661 üzenetére
"Szóval arra gondoltam, létrehozni egy objektumot a kigyűjtött adatok tárolására, egy boltnak egy objektum, és mondjuk ArrayList-ben tárolom őket, majd egy for ciklussal végigmegyek az objektumokon, és megkeresem a kért eredményt."
ezt irtam en is, csak nem ArrayList, hanem TreeMap (vagy HashTable). amiben a bolt_id a kulcs es (nyitas,feltet,paprika) harmast tarolsz. ez elvileg gyorsabb mintha ArrayListben tarolnad
tehat beolvasod soronkent a dat-ot. mindig megnezed, hogy ilyen boltrol van e mar infod a Mapban, ha igen akkor tudod a nyitvatartast, es nezed a pizzat (ha nem akkor letrehozol egy uj objektumot a Mapban), hozzaadod amit kell es mesz tovabb. vegen egy iteratorral vegignezed. -
Gyuri16
senior tag
válasz
drachos #1659 üzenetére
ez az egesz feladat? nem vilagos, hogy honnan tudod mikor nyitott a bolt, ill. a fajlokrol jo lenne tudni, hogy valahogy sorba vannak e rendezve az adatok, vagy nem?
a feladatban ott van, hogy nem olvashatod be az egeszet, szoval amit te mondasz nem jo
egyelore ez a legjobb (igazabol egyetlen) otletem:
mesz sorban a .dat fajlodon, megnezed az idopontot, ha benne van az elso ket oraban akkor megnezed pizza_id-t a masik fajlban, onnan megtudod a feltetek szamat es ha a masodik oraban vagy akkor a paprikat is. Amit megtudtal hozzaadod a mar meglevo adatokhoz amit mondjuk egy Mapban tarolhatsz (bold_id, feltet, paprika). vegen atfutod a Mapot, es megnezed hol a legkevesebb a feltet es kiirod a paprikat
ha a .dat fajlod bolt_id szerint sorba van rendezve akkor nem kell az egesz Map, hanem eleg ha megjegyzes az eddig legjobbat, es mindig ahhoz viszonyitasz
ezzel az a gond, hogy ha a txt fajlod nincs valahogy sorbarendezve akkor minden egyes kereses benne akar az egesz fajl atnezeset jelenti. -
Gyuri16
senior tag
ez nem igy mukodik..
jsp egy szerver oldali nyelv, tehat a szerveren fut le, es az eredmenyt elkuldi a bongeszodnek. jelen esetben az tortenik, hogy behivod az oldalt, a szerveren ez lefut: szam=0, mivel a feltetel nem teljesul marad is annyi, ezt kiiratod. ha megnyomod a gombot a szkript ismet lefut a szerveren, tehat szam=0 aztan megnezi az ifet, mivel megnyomtad a gombot ezert eggyel noveli, es ezt ki is irja. a szerver ezutan elkuldi neked a valaszt, es elfelejti hogy volt valamilyen valtozoja. ha ismet ranyomsz a gombra akkor szinten az egesz lefut, onnan hogy szam=0, ezert igy nem fogsz nagyobb szamot kapni.
tobb megoldas van arra, hogy hogyan jegyezz meg valtozokat, ehhez a peldahoz talan a session valtozok illenek leginkabb -
Gyuri16
senior tag
válasz
Dzsenaj #1598 üzenetére
erre vannak a statikus metodusok (static kulcsszo, erre keress ra).
ilyenkor nem kell peldanyositani az objektumosztalyt. ilyenkor csak az osztaly statikus valtozoihoz ferhetsz hozza (ezt ritkan hasznaljuk, leginkabb minden adat a parameterekben van)
konkret pelda igy fog kinezni:public class Multi {
public static String StringTimes(String str, int n) {
String result = "";
for (int i = 0; i < n; i++) {
result += str;
}
return result;
}
}public class Main {
public static void main(String[] args) {
String str = Multi.StringTimes("abc",5);
System.out.println(str);
// System.out.println(Multi.StringTimes("abc",5));
}
}mod: figyelmetlenul olvastam, termeszetesen az egyszeru megoldas letrehozni egy peldanyt belole, ilyenkor nem kell static:
public class Main {
public static void main(String[] args) {
Multi m = new Multi();
String str = m.StringTimes("asdf",5);
System.out.println(str);
}
} -
Gyuri16
senior tag
a readline egy sort olvas be, szoval ha azt irod hogy 2009.4.26 es entert nyomsz, akkor azt kapod meg a String-be. Ezt aztan fel lehet dolgozni, attol fuggoen milyen az adat
NetBeans tapasztalatom nincs, de java-ban a package gyakorlatilag egyenlo egy konyvtarral. minden egyes file ami abban a packageban van, tudatja magarol, hogy a package resze (elso sorban package xy). ha aztan ebbol az filebol akarsz egy osztalyra hivatkozni (kivulrol, tehat mas packagebol) akkor package.osztalynev kell. egy program altalaban tobb packagebol all, ez az embereknek segit logigailag csoportositani az osztalyokat.
minden programban egy main metodus celszeru (elvileg lehet tobb is, de meg nem jottem ra mire jo). igy ha uj programot akarsz irni akkor ahhoz egy uj projektet kell csinalnod, uj osztallyal, main metodussal. -
Gyuri16
senior tag
segitseget szeretnek kerni reflectionnel. suliba irok egy projektet, ami kulonbozo algoritmusokat hasonlit ossze (gyakorlatilag a futasi idejuket meri).
az objektumstruktura ilyen:
AbstractHeap<E>
|
BinaryHeap<E>
na most ha kontkretan van egy ilyenunk:
BinaryHeap<Integer>, akkor annak van egy olyan fuggvenye hogy Insert(Integer e)
namarmost en szeretnek egy tesztelo objektumot, aminek lesz egy referenciaja a heap-re, es megmondom neki melyik metodust (pl Insert) milyen paramerekkel hivja meg, o lefuttatja, es megmondja meddig tartott neki. itt egy kod, hogy mit probaltam eddig:public long Test(String name, Object[] args) {
long t1 = 0, t2 = -1;
Class<?>[] c = new Class[args.length];
for (int i = 0; i < args.length; i++)
c[i] = args[i].getClass();
t1 = System.nanoTime();
heap.getClass().getMethod(name, c).invoke(heap, args);
t2 = System.nanoTime();
return t2-t1;
}itt termeszetesen a heap egy private referencia. hasznalva igy lenne kb:
HeapTester<Integer> tester = new HeapTester<Integer>(new BinaryHeap<Integer>());
long ido = tester.Test("Insert", new Integer[] {4});namarmost itt az a problema (szerintem), hogy a heap.getClass() csak azt tudja, hogy BinaryHeap, es a <Integer> resz elveszik, igyaztan a getMethod mar azt mondja nem talalt olyan Insertet aminek Integer parameterei vannak (java.lang.NoSuchMethodException: heap.BinaryHeap.Insert(java.lang.Integer))
most ugy oldottam meg, hogy a HeapTester osztalyban szetirtam az osszes metodust, amit tesztelni akarok, es csak meghivom azt a fuggvenyt a referencian keresztul, es visszaadom meddig tart, de ez igy nagyon nem szep, illetve eleg komplikalt lenne igy komplikaltabb teszteket (mondjuk 2-3 fajta implementacion hajts vegre sok insertet, deletet stb. es mindegyiknel jegyezd meg az idoket). a kerdes az, hogyan lehetne ezt megcsinalni, hogy mukodjon ahogy en gondoltam?
koszi a segitseget elore is
sorry, kicsit hosszu lett, remelem azert ertheto a gond -
Gyuri16
senior tag
szivesen.
az hogy a tied miert ir ki ket szamot egyszeru, nezd meg hogyan vannak az ifekif(szam1>szam2){
if(szam1>szam3)
System.out.println("A legnagyobb szam a "+szam1);
}
else
System.out.println("A legnagyobb szám "+szam3);
//////////////////////////////////////////////////////////////////////////
if(szam2>szam3){
System.out.println("A legnagyobb szam a "+szam2);
}
else
System.out.println("A legnagyobb szam "+szam3);ami a //////// folott van, az egy if, ami alatta egy masik, es mindketto kiirhatja a sajat megoldasat, ezert van ott ket szam
-
Gyuri16
senior tag
amit irtal nekem nem volt jo ( kiir tobb valaszt is..)
en megoldasom a 4 szamra:import java.util.Scanner;
public class Legn {
static void kiir(Double d) {
System.out.println("A legnagyobb szam a "+d);
}
public static void main (String[] args) {
Scanner billentyuzet = new Scanner(System.in);
System.out.println("Adj meg 3 számot");
Double szam1= billentyuzet.nextDouble();
Double szam2= billentyuzet.nextDouble();
Double szam3= billentyuzet.nextDouble();
Double szam4= billentyuzet.nextDouble();
if (szam1 > szam2){ //1>2
if (szam1>szam3) { //1>2, 1>3
if (szam1 > szam4) { //1>2, 1>3, 1>4
kiir(szam1);
}
else { // 1>2, 1>3, 1<=4
kiir(szam4);
}
}
else { // 1>2, 3>=1
if (szam3 > szam4) { //1>2, 3>=1, 3>4
kiir(szam3);
}
else { //1>2, 3>=1, 3<=4
kiir(szam4);
}
}
}
else { // 1<=2
if (szam2 > szam3) { // 1<=2, 2>3
if ( szam2 > szam4 ) { //1<=2, 2>3, 2>4
kiir(szam2);
}
else { // 1<=2, 2>3, 2<=4
kiir(szam4);
}
}
else { // 1<=2, 2<=3
if ( szam3 > szam4 ) { // 1<=2, 2<=3, 3>4
kiir(szam3);
}
else { // 1<=2, 2<=3, 3<=4
kiir(szam4);
}
}
}
}
}probaltam kommentezni es zarojelezni, hogy atlathato legyen, remelem segit
semmi magia nincs mogotte, egyeduli dolog ami hasznalva van, hogy a < tranzitivmod: sajna a tabokat megette a forum, de azert igy is hasznalhato
-
Gyuri16
senior tag
szeretnek irni egy programot, ami egy problemara tobb megoldast tud nyujtani (kulonbozo algoritmusok, amik ugyanazt a celt szolgaljak), es ezeket osszehasonlitani (futasi ido).
ugy kepzeltem el, hogy lesz egy absztrakt osztalyom, amiben benne lesz az osszes funkcio amit hasznalni szeretnek. ezutan megirom a kulonbozo algoritmusokat (mind kulon osztalyban). itt jonne a kepbe egy tesztelo user interface, ahol lehetne valogatni az algoritmusok kozott, es kulon tesztelni oket (bemeno adatokat megadni, stb).
egeszet ugy szeretnem megcsinalni, hogy barki irhasson ilyen algoritmust, es azt is lehessen tesztelni a programomban. vegulis ugy gondolnam, hogy pluginkent kezelne ezeket az osztalyokat, es tudna oket futtatni, listazni (mondjuk egy konyvtarbol). termeszetesen az osszes osztalynak az en absztrakt osztalyomtol kellene orokolnie a fuggvenyeket.
kerdes az lenne, hogy hogyan tudok letrehozni egy fajlt, amit aztan hasznalhatok pluginkent, tehat oda tudom adni a programnak, o felismeri, hogy bizony azt csinalja amit kell, es meg tudja hivni a fuggvenyeit?
(ha van ilyesmire standard eljaras eleg valami link leirasra, de hirtelen google nem segitett, nem igazan tudom mit kellene keresnem) -
Gyuri16
senior tag
ez a hiba szerintem akkor fordulhat elo ha az utolsot tavolitod el igy:
while(seged.kovetkezo!=null) seged=seged.kovetkezo; // ellepdelsz az utolsoigseged.elozo.kovetkezo=seged.kovetkezo; // ez beallitja nullra, jo
seged.kovetkezo.elozo=seged.elozo; // seged.kovektezo == null, ez hibat dob
...aztan lehet hogy valami mas a hiba, de megneznem ezt
-
Gyuri16
senior tag
mit kell lehuznom ahhoz, hogy eclipseben ctrl+egergomb kombora megkapjam a standard fuggvenyek es classok forraskodjat (a sajatoknal ez mukodik, de hogy mukodjon a java sajatjaira is). most azt irja hogy nincsenek meg neki a forrasfajljai.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Dell notebook topic
- Fejhallgató erősítő és DAC topik
- exHWSW - Értünk mindenhez IS
- IGP nélküli processzorokkal készül az Intel és az AMD
- Trollok komolyan
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Épített vízhűtés (nem kompakt) topic
- One mobilszolgáltatások
- iPhone topik
- Rágyúr a macOS-re a 3DMark
- További aktív témák...
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- BESZÁMÍTÁS! ASUS ROG STRIX X570-E Gaming alaplap garanciával hibátlan működéssel
- Samsung Galaxy A54 5G , 8/128 GB , Kártyafüggetlen
- SanDisk Extreme Portable 8TB (SDSSDE61-8T00-G25)
- Bomba ár! Lenovo ThinkPad X390: i5-G8 I 16GB I 256GB SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged