Hirdetés
Új hozzászólás Aktív témák
- 
			
			  artiny őstag Tudnatok linkelni olyan feladatgyujtemenyt javabol, egyszerűbbeket (kozepiskolai szintu feladatokat) gyakorlas celjabol, aminel a megoldas is megtalalhato? 
- 
			
			  tick aktív tag válasz  WonderCSabo
							
							
								#7496
							
							üzenetére WonderCSabo
							
							
								#7496
							
							üzenetéreMűködik! Nem teljesen értem hogyan, hiszen maga a selenium is tartalmazza és nincs egy importom sem, ami direktben a külön függő HtmlUnit-ot hívná. De működik, Köszönöm!  
 Egyébként azért fontos, mert a 2.15-ös HtmlUnit nem volt hajlandó behozni oldalakat ahol tíltva van az SSLv3. Egy módosítást találtam megoldásként, ami 2.16-ba került be.
- 
			
			  WonderCSabo félisten Én nem látok itt semmi átalakítást. Működik is nekem: pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>seleniumtest</groupId>
 <artifactId>seleniumtest</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <dependencies>
 <dependency>
 <groupId>org.seleniumhq.selenium</groupId>
 <artifactId>selenium-java</artifactId>
 <version>2.45.0</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>net.sourceforge.htmlunit</groupId>
 <artifactId>htmlunit</artifactId>
 <version>2.16</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.12</version>
 <scope>test</scope>
 </dependency>
 </dependencies>
 </project>Teszt osztály: public class HtmlUnitTest { 
 @Test
 public void testHtmlUnit() {
 WebDriver driver = new HtmlUnitDriver();
 driver.get("http://www.google.com");
 WebElement element = driver.findElement(By.name("q"));
 element.sendKeys("htmlunit");
 element.submit();
 System.out.println("Page title is: " + driver.getTitle());
 driver.quit();
 }
 }Mondjuk alapból 2.15-ös htmlunit-ot használ a legújabb Selenium, szóval nagy változásokra nem kell számítani a 2.16-s verziótól... 
- 
			
			  tick aktív tag Azt használom most, viszont macerás. Néha egyszerűen minden ok nélkül megáll vagy elhagyja a cookie-kat és emiat logoutol a webappból. Sőt 3-ből ~1-szer az első get nem is kap választ és timeout-ol. 3-ból 2-szer pedig egy másodpercen belül megvan. Nincs network probléma, a forrás konstans elérhető. 
 Windows esetén még könnyen mellékelem a jar-ba és kimásolom az azonos mappába futáskor, még a bináris beállítása előtt.
 Linux esetén viszont ha nincs telepítve, akkor nem hajlandó futni. (Fedora alapú linuxnál pedig működésre sem tudtam bírni, de ez nem jelent problémát, mivel az egyetlen redhat-es emberke átmigrál)@WonderCSabo: Selenium átalakította, itt látszik is a rengeteg selenium import. 
- 
			
			  tick aktív tag válasz  WonderCSabo
							
							
								#7491
							
							üzenetére WonderCSabo
							
							
								#7491
							
							üzenetérePróbáltam cserélni, de utána class not found errorokat kaptam sajnos 
 (a file nevet is cseréltem, és próbáltam újra importálni is)
- 
			
			  WonderCSabo félisten Ha rendes függőségkezelést használt (pl. Maven vagy Gradle), akkor egyszerűen csak deklarálni kell az újabb verziót és azt fogja használni. Ha az egybecsomagolt zipet használod, akkor ki kell dobni onnan kézzel a libs mappából a htmlunit jart, és berakni az újabbat. 
- 
			
			  tick aktív tag Selenium jar-ban vajon lehetne manuálisan frissíteni htmlunit-ot? Google nem siet a poodle reakcióval :/ 
- 
			
			  norbert1998 nagyúr válasz  WonderCSabo
							
							
								#7487
							
							üzenetére WonderCSabo
							
							
								#7487
							
							üzenetéreIgen, tudom, ezt copy paste-eltem egy nagyobb programból, amiatt a fura nevek. Az i-t én is ciklusváltozónak szoktam használni  
- 
			
			  Sk8erPeter nagyúr válasz  WonderCSabo
							
							
								#7487
							
							üzenetére WonderCSabo
							
							
								#7487
							
							üzenetéreNekem az a "kedvencem", amikor valaki ilyen magasszintű nyelvben rövidítgeti a változóneveit, mintha nem lenne mindegy akár teljesítmény, akár az IDE autocomplete-je szempontjából, aztán lehet bogozgatni.  
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7486
							
							üzenetére norbert1998
							
							
								#7486
							
							üzenetéreCsak egy apró tanács: ne nevezd el a tömb hosszút jelentő változót "i"-nek. Az "i"-t szinte mindig ciklusváltozónak szoktuk felhasználni. 
- 
			
			  D4nte csendes tag válasz  norbert1998
							
							
								#7482
							
							üzenetére norbert1998
							
							
								#7482
							
							üzenetéreAz lenne a legjobb, ha magadtól rájönnél mi a hiba (ha az írás óta ez megtörtént az nagyszerű). Melléteszed a keresés Pszeudokódját segítségül esetleg (de ne görgesd le mert ott a java-s is!), és úgy már mindenképpen menni fog a javítás. 
- 
			
			  Szmeby tag válasz  norbert1998
							
							
								#7482
							
							üzenetére norbert1998
							
							
								#7482
							
							üzenetéreA j egy nemnegatív szám. A k megy j+1-től j-ig, és növekszik. Csodálkozol, hogy nem csinál semmit?  
- 
			
			  norbert1998 nagyúr Üdv újra! 
 Egy ABC rendezéssel szenvedek. Leegyszerűsítettem az egészet egy külön programba, elsősorban, hogy egy ilyen egyszerű esetben is csinálja-e, amit csinál. Sajnos igen. Az utolsó elemet berakja előre, és viszon'látás! 
 Minimumkiválasztásos rendezéssel ezt csinálja, közvetlen kiválasztásossal pedig az égvilágon lófült sem tesz. A minimumkiválasztásost írom le, most az van kicsinyítve nekem.
 String csereseged;
 String []rendnev={"A","B","C","D","E"};
 int cser;
 int i=rendnev.length;
 for(int j=0;j<i-1;j++){
 cser=0;
 for (int k=j+1;k<j;k++){
 if (rendnev[j].compareTo(rendnev[cser])>0) cser=k;
 }
 csereseged=rendnev[j];
 rendnev[j]=rendnev[cser];
 rendnev[cser]=csereseged;
 }
 for(int j=0;j<i;j++) System.out.println(rendnev[j]);
- 
			
			  floatr veterán Igaza van a többieknek a Writer osztályokkal kapcsolatban a doksi alapján, de: public abstract class Writer implements Appendable, Closeable, Flushable { 
 ...
 abstract public void close() throws IOException;
 ...
 }garancia nincsen rá h az implementációk meg is fogják csinálni. public class FileWriter extends OutputStreamWriter { 
 ...
 }a FileWriter egy OutputStreamWriter "wrapper" public class OutputStreamWriter extends Writer { 
 private final StreamEncoder se;
 ...
 public void close() throws IOException {
 se.close();
 }
 ...
 }namost a StreamEncoder nálam egy sun csomagos implementáció, a bytekód szerint úgy látom h meghív két flush jellegű metódust void implClose() throws java.io.IOException; 
 0 aload_0 [this]
 1 aconst_null
 2 iconst_1
 3 invokespecial sun.nio.cs.StreamEncoder.flushLeftoverChar(java.nio.CharBuffer, boolean) : void [64]
 6 aload_0 [this]
 7 getfield sun.nio.cs.StreamEncoder.encoder : java.nio.charset.CharsetEncoder [39]
 10 aload_0 [this]
 11 getfield sun.nio.cs.StreamEncoder.bb : java.nio.ByteBuffer [41]
 14 invokevirtual java.nio.charset.CharsetEncoder.flush(java.nio.ByteBuffer) : java.nio.charset.CoderResult [71]tehát elvileg jó a cucc, ha a sort lezárod. Ennek ellenére én továbbra is aszondom, hogy ártani nem árt, ha használod a flush-t, ráadásul ha netán Writer helyett OutputStream-et használsz valahol, akkor megkíméled magad egy sunyi problémától. 
- 
			
			  WonderCSabo félisten Sorry, a Writer-t akartam írni, nem OutputStream-et. A Writer ősosztály azt mondja: "Closes the stream, flushing it first. " Ezt minden implementációnak be kell tartania. Az OutputStream és leszármazotta valóban nem állítanak ilyet magáról, ezért nem lehet hagyatkozni rá. 
- 
			
			  floatr veterán válasz  WonderCSabo
							
							
								#7476
							
							üzenetére WonderCSabo
							
							
								#7476
							
							üzenetérepublic abstract class OutputStream implements Closeable, Flushable { 
 ...
 public void close() throws IOException {
 }
 ...
 }public 
 class FileOutputStream extends OutputStream
 {
 ...
 public void close() throws IOException {
 synchronized (closeLock) {
 if (closed) {
 return;
 }
 closed = true;
 }
 if (channel != null) {
 channel.close();
 }
 fd.closeAll(new Closeable() {
 public void close() throws IOException {
 close0();
 }
 });
 }
 ...
 }public 
 class FilterOutputStream extends OutputStream {
 ...
 public void close() throws IOException {
 try (OutputStream ostream = out) {
 flush();
 }
 }
 ...
 }A BufferedOutputStream az utóbbit terjeszti ki. 
 Ezért mondom azt, hogy kötelező a flush, mert van olyan implementáció, ami megcsinálja, van olyan, ami nem. Könnyű benézni.
- 
			
			  WonderCSabo félisten válasz  industrial
							
							
								#7474
							
							üzenetére industrial
							
							
								#7474
							
							üzenetéreAz, hogy a kódot "Programkód" formázással, vagy inkább direkt erre való PasteBin vagy GitHub Gists oldalakra rakd fel.  
- 
			
			  industrial tag Hello 
 Van egy java programom amiben a következőt kellene meg csinálnom:
 Forrás txt fájlok beolvasása.
 -Input bekérés conzolról, end jelig.
 -Bevitt adatok elraktározása.
 -Forrás tömbök összefésülése. (a két forrásnak azonos az első oszlopa, az alapján kell összerakni a 2-t)
 -Tömb sorbarendezés.
 -Kiírása txt fájlbaEddig jutottam a kódban de innentől nem igazán tudok haladni. Mi a további teenedő? import java.util.Scanner; 
 import java.io.File;
 import java.util.Vector;
 public class Feladat {
 Feladat() {
 File enfileom = new File("adatok.txt");Vector<String> tomb = new Vector<String>(); 
 //tombok a szetbontashoz
 Vector<String> oszlop1 = new Vector<String>();
 Vector<String> oszlop2 = new Vector<String>();//String[] tomb = new String[10]; 
 try {
 Scanner olvaso = new Scanner(enfileom);
 while(olvaso.hasNextLine()){
 tomb.add(olvaso.nextLine());
 }
 olvaso.close();
 //tomb[0] = "slglsdf";
 } catch (Exception ex) {
 ex.printStackTrace();
 }
 //tomb kiirasa:
 for (int i = 0; i<tomb.size(); i++){
 System.out.println(tomb.get(i));
 }int index; 
 for (int i = 0; i<tomb.size(); i++){
 index = tomb.get(i).indexOf(",");
 oszlop1.add(tomb.get(i).substring(0,index));
 oszlop2.add(tomb.get(i).substring(index+1));
 }Scanner bill = new Scanner(System.in); 
 String keresett;
 do {
 System.out.print("Mit keresel: ");
- 
			
			  #39560925 törölt tag válasz  PumpkinSeed
							
							
								#7470
							
							üzenetére PumpkinSeed
							
							
								#7470
							
							üzenetére"Valamiért nekem villog össze vissza" Igen, az animáció akkor is be van kapcsolva és lassabb az animáció (50ms), mint ahogy húzogatod a csúszkát. Akkor is animál ha gépelsz, de annyira gyorsan kevesen írnak hogy azt ne tudja követni az animáció. Csúszkánál kiviszem majd. Tudom, hogy nem igényes a design, de mint írtam a frontend teljesen újra lesz írva Angularban, így ezekkel már nem foglalkozok. Inkább olyan funkcionalitásbeli ötleteket vártam, mint social login, ismerőseid tevékenységeinek mutatása (megnézett, értékelt, listára rakott egy filmet) egy timelineon és hasonlók. 
- 
			
			  WonderCSabo félisten Számomra jónak tűnik a cucc, le is futtattam, létrehozza a fájlt és logol is bele. Két gondolatom van csak: Settings.logging esetleg nem false? FileWriter fw = new FileWriter(logFile.getName(),true); Ezzel vigyázz, mert ez csak a current directoryban fogja létrehozni a fájlt a névvel, szóval nem ott lesz, ahol sejted. Pl. ha IDE-ből futtatod: logFile útvonala a build mappában belül log.txt new FileWriter(logFile.getName(),true) viszont az aktuális mappában, tehát a projekt mappában hozza létre a fájlt és írja Szerk.: Közben már látom megtaláltad a jó megoldást, de akkor a posztom alapján már érted, hogy az előző miért nem ment.  
- 
			
			  PumpkinSeed addikt válasz  #39560925
							
							
								#7469
							
							üzenetére #39560925
							
							
								#7469
							
							üzenetéreA Movies alatt a Page Size állítása a Most kulcsszóra működik, de gondolom nem így tervezted. Valamiért nekem villog össze vissza, meg ilyenek.Elég furcsa, amúgy egy kis margin-t tehetnél. Most így hirtelen ennyi. Szerk.: Ja meg ha a show details-re kattintunk akkor felmehetne a detail-sra, mert vártam, hogy majd ott lenyílik valami aztán jöttem rá, hogy feljebb kell menni hozzá. 
- 
			
			  #39560925 törölt tag Itt van a kis béna webapp ami miatt annyit kérdeztem mostanság.  
 Ha elmenne a netem, azért nem vállalok felelősséget.Frontend egy összegányolt single page app, sima html + jquery kombóval, azt majd újraírom angularral. A kinézetet ötévesek tervezték. 
 Regisztrációs felület még nincs, ezért csináltam a topiknak egy usert:
 user: JavaHurkák
 pwd: password3 hónappal ezelőtti IMDB adatbázisból dolgozik (akkor töltöttem le). Elsősorban azért raktam be ide, hogy aki tud, az írhatna ötleteket új funkciókhoz. 
- 
			
			  tick aktív tag válasz  dabadab
							
							
								#7467
							
							üzenetére dabadab
							
							
								#7467
							
							üzenetéreNincs exception ez a bajom, már kigugliztam volna a megoldást  
 Megpróbáltam több féle módszert is amit google elém tárt, de egyszerűen egyik sem működik. És nem értem miért.Így működik!!  Köszi! Köszi!if(!logFile.exists()){ 
 logFile.createNewFile();
 }
 FileWriter fw = new FileWriter(logFile, true);
 fw.write(s.toString() + System.getProperty("line.separator"));
 fw.close();
- 
			
			Ja, nem kellett volna ennyit bor a vacsorahoz  (Mondjuk jelen esetben a BufferedWriternek sok ertelme nincs, az akkor jonne jol, ha sok kis irasod lenne, ha egyszer irsz csak, akkor csak lassit.) (Mondjuk jelen esetben a BufferedWriternek sok ertelme nincs, az akkor jonne jol, ha sok kis irasod lenne, ha egyszer irsz csak, akkor csak lassit.)
 (Egyebkent a logFile-t mindenestul is atadhatod neki, fogad File-t is a FileWriter konstruktora.)Exceptiont sem dob? 
- 
			
			  tick aktív tag Üdv! Egy saját "loggert" használok és console mellett fájlba is szeretném kiírni. A fájlt létrehozza sikeresen, de egyszerűen nem ír bele semmit. Mi lehet a gond? public class Logger { 
 private static File logFile = new File(ClassLoader.getSystemClassLoader().getResource(".").getPath()+"log.txt");
 public static void log(Object s) {
 if(!Settings.logging) return;
 //console
 System.out.println("L: "+s);
 
 //file
 try {
 if(!logFile.exists()){
 logFile.createNewFile();
 }
 FileWriter fw = new FileWriter(logFile.getName(),true);
 BufferedWriter bw = new BufferedWriter(fw);
 bw.newLine();
 bw.write(s.toString());
 bw.close();
 fw.close();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }
 }
- 
			
			  norbert1998 nagyúr válasz  WonderCSabo
							
							
								#7462
							
							üzenetére WonderCSabo
							
							
								#7462
							
							üzenetéreÉrtem. Köszi, hogy megnézted  
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7442
							
							üzenetére norbert1998
							
							
								#7442
							
							üzenetéreTudom, hogy csak a konzolra írtok, nem is baj az. Csak a formázást sztem nem kell túlzásba venni. A keresést már nem néztem, mert az extra hiánya miatt ugye az egész kód piros volt. A beolvasás jó. 
- 
			
			  WonderCSabo félisten Megint szétoffoltuk a topikot srácok.  Kéne valami prog oktatás topik (vagy van?). Kéne valami prog oktatás topik (vagy van?).
- 
			
			  floatr veterán válasz  Aethelstone
							
							
								#7459
							
							üzenetére Aethelstone
							
							
								#7459
							
							üzenetéreSzerintem az assembly tökre elfogadható. Láttál már forth kódot?  
- 
			
			  Aethelstone addikt Nyilván mindenkinek más fekszik. Ezért is nehéz eldönteni adandó alkalommal, hogy melyik nyelv lenne jó arra, hogy a teljesen zöldeket bevezesse a programozás világába. Ezért talán fontosabb az, hogy az a tanár, aki tanítja, milyen képességekkel rendelkezik, hogy elmagyarázza a népeknek. Mert aki zöld, annak olyan tökmind1, hogy melyik lesz az első programnyelv. (kivéve assembly  ) )
- 
			
			  floatr veterán válasz  #39560925
							
							
								#7454
							
							üzenetére #39560925
							
							
								#7454
							
							üzenetéreNem csak most, régebben is. (#7455) Aethelstone én ezt ebben a sorrendben toltam: többféle basic, assembly (z80), pascal, c, assembly (x86), c++, java. Aztán a többi sallang. A C++ okozott sokaknak fejtörést, láttam ahogy vért izzadnak, pedig akkor a template-ek még sehol nem voltak. Egyszerűen elvesztek az absztrakcióban, és nem tudták készség szinten használni. Ahhoz képest a pointerek nélküli C gyerekjáték volt 
- 
			
			válasz  Aethelstone
							
							
								#7456
							
							üzenetére Aethelstone
							
							
								#7456
							
							üzenetéreNa de Javában MINDEN pointer  
 (Nálam a C az assembly után jött, én akkor azt nem értettem, hogy mit nem lehet nem érteni a pointereken ) )
- 
			
			válasz  Aethelstone
							
							
								#7451
							
							üzenetére Aethelstone
							
							
								#7451
							
							üzenetére"Szerintem kifejezetten könnyen tanulható a C++." Höhö. (A Java se az, hogy ontopik maradjak.) 
- 
			
			  floatr veterán válasz  Aethelstone
							
							
								#7451
							
							üzenetére Aethelstone
							
							
								#7451
							
							üzenetéreUhh. A fősulin egy félévig gyúrták az évfolyam agyát C++-ra. A zemberek 90%-a meg sem értette, hogy mi ez az egész. Azok tudták követni, akiknek volt megfelelő előképzettsége (intézményesített/autodidakta) 
- 
			
			  floatr veterán válasz  #39560925
							
							
								#7449
							
							üzenetére #39560925
							
							
								#7449
							
							üzenetéreNe mondd ezt. Én GTK alatt maszatoltam pythonnal, és elég gyorsan lehetett látható dolgokat csinálni. Ha valaki nagyon bele akar kapálni a dolgokba, úgyis utána megy. Praktikussági alapon nekem a JS talán az, ami minden szempontból jó lehetne, bár nyilván mindenkinek más áll jobban kézre. 
- 
			
			  floatr veterán válasz  dabadab
							
							
								#7446
							
							üzenetére dabadab
							
							
								#7446
							
							üzenetéreJa, a python is elég jó kezdésnek. Vagy ruby  Amúgy pascalban is ott vannak a pointerek, de nem muszáj egyiknél sem használni, mint ahogy C-ben sem a malloc-cal kezd az ember. (#7447) Oppenheimer kicsit feleslegesnek érzem az alacsony szintű dolgokat kezdésképpen. Egyből elmenne a kedve a kezdőnek mindentől. Kell valami, aminél kis ráfordítással látványos eredeményeket lehet elérni. Ezért is használták régen a BASIC-et assembly helyett  
- 
			
			"Pascal-t és C-t elkezdeni elég könnyű" A Pascalt igen. A C-t maximum ugy, hogy az ember a kod felet nem erti, mert ott pillanatok alatt megjelennek pointerek meg hasonlok. Elso nyelvnek szerintem talan a Python a legalkalmasabb: valoban hasznalt, praktikus jelentoseggel is rendelkezik, lehet interaktiv interpreteres modban futtatni, tud egy csomo mindent, viszont azokat nem kotelezo hasznalni: egy egyszeru hello worldot egy sorban le lehet rendezni. 
- 
			
			  floatr veterán válasz  Aethelstone
							
							
								#7444
							
							üzenetére Aethelstone
							
							
								#7444
							
							üzenetéreTeljesen mindegy milyen nyelvet választanak hozzá. Csak nem mindegy, hogy hogyan kezdik el. Pascal-t és C-t elkezdeni elég könnyű, a C++ és Java viszont kicsit nagyobb előkészületet igényel. Lehet h páran felhördülnek, de én akár JS-t is el tudnék képzelni első nyelvnek ilyen feladatokra. HTML-es babrálásokat már általánosban is tanulgatnak. 
- 
			
			  floatr veterán válasz  norbert1998
							
							
								#7440
							
							üzenetére norbert1998
							
							
								#7440
							
							üzenetéreMondjuk ezt az egészet én sem értem, hogy miért kell ezt így. Amikor gimis voltam az előző évezredben pascal-ban gyártottunk max 100 soros kódot, de ott már mindenféle algoritmus volt, amikell az alapokhoz. Jó hogy Javat használtok, de nem értem, hogy akkor először miért nem tanítják meg nektek azokat az alapokat, amivel nem csak gányoltok, hanem kezelhető minőségű kódot tudtok csinálni. 
- 
			
			  norbert1998 nagyúr válasz  WonderCSabo
							
							
								#7441
							
							üzenetére WonderCSabo
							
							
								#7441
							
							üzenetéreÉs az extra hiánya miatt törölted az egész extra dolgot? Mondom pont abban látszik, hogy mi van. 
 És azt is mondtam, hogy csak konzolra iratunk. Az egész tanterven nincs is más! Neked működik az 1/2/1-es menüpontban a keresés és az első találat kiírása?  
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7440
							
							üzenetére norbert1998
							
							
								#7440
							
							üzenetéreha format left vagy right-tal kiiratod, akkor sincs elcsúszva a felső sor? Nem. Mivel nem mellékelted azt a csomagot, ezért kénytelen voltam törölni az extra csomagban lévő hívásokat. De ezek szerint a kiírás rossz csak. Én nem sokat foglalkoznék egy konzolra való kiírás formázásával... 
- 
			
			  norbert1998 nagyúr Szia! 
 Valójában 3-400 soros programot kellene írni. Az első része az volt, hogy alkossunk egy feladat specifikációt, ami alapján elkészül a program. Extra dolgokat tudhat, viszont kevesebbet nem. Nos, kicsit nagyon elvetettem a sulykot a feladatspecifikacional. Így most tulajdonképpen iszom a levét.Jézus, mennyit írtál!  köszönöm szépen köszönöm szépen 
 Sajnos ez nekem még mindig nagyon magas És tankonyvunk sincs. Semmit nem írt ki az oktatási minisztérium. Egy füzetbe jegyzetelunk és kész. WonderCSabo: ha format left vagy right-tal kiiratod, akkor sincs elcsúszva a felső sor? 
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7437
							
							üzenetére norbert1998
							
							
								#7437
							
							üzenetéreLefuttattam a progidat, nálam oké, nem látok semmilyen extra karaktert. 
- 
			
			  Szmeby tag válasz  norbert1998
							
							
								#7435
							
							üzenetére norbert1998
							
							
								#7435
							
							üzenetéreSzia! Az ember maximum 7 dolgot tud egyszerre fejben tartani. A program komplexitása messze meghaladja ezt a számot. Vagyis az időd nagy részét arra pazarlod, hogy a fejedből kieső információt folyamatosan töltöd vissza, miközben ettől függetlenül hibát is keresel. Ne csodálkozz, ha nem megy. Senkinek sem menne. Az oktatás célja új tudásanyag átadása, és nem a szívatás. Ha tömbök használatát kell gyakorolni, akkor gyakoroljátok, de ezt nem egy átláthatatlan programon kell csinálni, mert az már nem a tömbök használata lesz. Ezzel csak arra akarok célozni, hogy bizonyos komplexitás elérésekor meg KELL tanulni a kód kisebb egységekre bontásának módjait. Különben az energia egyre nagyobb részét fogja felemészteni az, hogy próbálod megérteni, mi történik, és egyre kevesebb figyelem jut a tényleges gyakorlásra. A nehezebb mód az, hogy tovább görcsölsz rajta, és majd egyszer sikerül rátalálni az egyik hibára. Sajnos hátra van még a többi hiba is. Mindig van egy újabb hiba.  
 Ezen valamelyest javíthatsz, ha elkezded debugolni: teszel egy breakpoint-ot a problémás rész elé, és debug módban indítod a programot. Majd szépen lassan, soronként egyesével lépkedve, a változók értékeit folyamatosan ellenőrizve megnézed, mit is a csinál a gép.A könnyebb (és melósabb) mód, ha legalább megtanulsz metódust készíteni. Első lépés: 
 public class Beadando {
 public static void main(String[] args) {
 new Beadando.doit();
 }
 // ez egy példány szintű metódus, nincs visszatérési értéke, nincs paramétere
 public void doit() {
 // a main helyett ide kerül minden
 }
 }A static main metódus a program belépési pontja, ugyan a Beadando osztályban van (mert valahova tenni kell), de nem sok köze van hozzá. Ami a main-ben történik, hogy az osztályból készül egy példány, és azonnal ráhívsz annak egy példány szintű (nem static) metódusára. Én doit-nek neveztem, te úgy nevezed, ahogy akarod. Minden más marad a régiben. A következő lépés lehetne mondjuk a Beadando által gyakran használt változókat kiemelni, field-et csinálni belőle. Ha nem lenne egy Beadando példányod, ezt nem tehetnéd meg ilyen szépen. Pl. én kiemelném az adatot tartalmazó tömböket, sőt a színeket tartalmazó konstansokat is: 
 public class Beadando {
 private static final String RESET = "\u001B[0m";
 private static final String RED = "\u001B[31m";
 private static final String BLUE = "\u001B[34m";
 private static final String CYAN = "\u001B[36m";
 private int n=500;
 private String [] nev =new String [n];
 private String [] gazdnev =new String [n];
 private String [] tomeg =new String [n];
 private String [] kor =new String [n];
 public static void main(String[] args) {
 new Beadando().doit();
 }
 public void doit() {
 // ide kerül minden
 }
 }
 Értelemszerűen ezeket már nem kell belül létrehoznod, elég hivatkozni rájuk. Javaban a konstans static és final módosítóval is rendelkezik, a példány szintű field-eknek nem kell static-nak lenniük. Nem is ajánlott.new Beadando() 
 Ez készít egy példányt az osztályból. Mivel az osztálynak még nincs látható(!) konstruktora, az alapértelmezett konstruktor (aminek nincs paramétere) használható a példányosításkor.A tömb mérete nem túl szép ott a field-ek között, lehetne akár konstruktor argumentum. A konstruktor tekinthető egy spéci metódusak is, máshogy is néz ki. Ő csak egyszer hajtódik végre, a példány létrehozásakor. A tömböket is elég ilyenkor lefoglalni: 
 public class Beadando {
 private static final String RESET = "\u001B[0m";
 private static final String RED = "\u001B[31m";
 private static final String BLUE = "\u001B[34m";
 private static final String CYAN = "\u001B[36m";
 private String [] nev;
 private String [] gazdnev;
 private String [] tomeg;
 private String [] kor;
 private int n;
 public static void main(String[] args) {
 // new Beadando(500).doit();
 // vagy akár így is lehet példányosítani és ráhívni az egyik metódusára:
 Beadando beadando = new Beadando(500);
 beadando.doit();
 }
 // ez a konstruktor, van egy int argumentuma, ebben lesz majd az 500
 public Beadando(int n) {
 this.nev =new String [n];
 this.gazdnev =new String [n];
 this.tomeg =new String [n];
 this.kor =new String [n];
 this.n = n; // ha esetleg még valahol hivatkoznál az n-re, a this.n-nel ezt megteheted
 }
 public void doit() {
 // ide kerül minden
 }
 }A field-ekre a this. prefix-szel hivatkozhatsz, de elhagyható, ha a neve nem ütközik más változó nevével. Első blikkre egész szépen kiszervezhetők metódusokba a case blokkokban lévő cuccok. Kezdd a belül lévő legkisebbekkel. Kommentekkel még el is nevezted őket, szinte adja magát. 
 Pl. ebből:
 // ...
 public void doit() {
 // ... a doit elején lévő cuccok
 case 3 : { //főmenü 1-es menüpont->2-es menüpont
 String kereses=extra.Console.readLine("Milyen korút keressünk?");
 db=0;
 i=0;
 while(kor[i++]!=null){
 }
 for (int g=0;g<i;g++){
 if (kereses.equals(kor [g])){
 torvalogatas[db]=g;
 db++;
 }
 }
 break;
 }
 // ... a doit végén lévő cuccok
 }
 }Ez lesz: 
 // ...
 public void doit() {
 // ... a doit elején lévő cuccok
 case 3 : { //főmenü 1-es menüpont->2-es menüpont
 db = keresKorra(torvalogatas);
 break;
 }
 // ... a doit végén lévő cuccok
 }
 // ez egy új metódus, az osztályon belül, de a doit metóduson kívül
 private int keresKorra(int[] torvalogatas)
 String kereses=extra.Console.readLine("Milyen korút keressünk?");
 int db=0; // Figyelem! Ez a db, nem a metóduson kívül található db.
 int i=0; // Ahogy ennek az i-nek sincs semmi köze a külső i-hez. Ezek csak itt belül léteznek.
 while(kor[i++]!=null){
 }
 for (int g=0;g<i;g++){
 if (kereses.equals(kor [g])){
 torvalogatas[db]=g;
 db++;
 }
 }
 return db; // Itt a metódus futása megszakad és visszatér a return mögött található változó értékével.
 }
 }A metódusokat tetszőleges sorba rendezheted, azokat, amelyek hasonló dolgot csinálnak, egységesítheted. Amelyek pedig ugyanazt csinálják, több helyen újra felhasználhatod, eltérő paramétereket adva neki. private int keresKorra(int[] torvalogatas) 
 Az első elem egy láthatóságot szabályozó módosító, a private csak az osztályon belül látható, a public bárhol, a többi most nem érdekes, jelen esetben teljesen mindegy, melyiket használod.
 A következő a metódus visszatérési értékének típusa. Sajnos max. csak 1 db visszatérési értéke lehet egy metódusnak, ez most egy int (a metódus törzsében található return utasítással adod majd vissza a tényleges értéket). Ha a metódus nem kell, hogy visszaadjon értéket, akkor a típus a void lesz (a return pedig elhagyható).
 Aztán jön a metódus neve, tetszőleges, bár a szokásos névkonvenciók rá is vonatkoznak, kezdődjön kisbetűvel, és az ékezetes betűket inkább hanyagold.
 A zárójelek között pedig vesszővel elválasztva felsorolod a metódus paramétereit (típusa és a metóduson belül használt neve).
 Ha a metódusban kivételt is dobunk és azt nem kapjuk el, akkor a ) után szerepel a throws kulcsszó és a kivételek vesszővel elválasztva, pl.: void metodusNeve(String param1, int param2) throws IOException { }. A fordító majd úgyis reklamál, ha ilyet kell csinálnod.A return a metódusban bárhova tehető, de ha a vezérlés elér hozzá, - akár egy ciklus kellős közepén is vagy - a metódus futása megszakad és visszatér az adott változó aktuális értékével. Ez alól csak a finally blokk kivétel, mert az abban lévő cucc a metódus elhagyása előtt még gyorsan megfut. A metódus felhívása így történik: 
 db = keresKorra(torvalogatas);
 Metódus neve, és zárójelben vesszővel elválasztva felsorolod az átadni kívánt paramétereket. Ha a metódus valamilyen értékkel is visszatér (nem void), akkor azt az értéket el is tárolhatod egy változóban, most a db változóba tettük egy sima értékadás keretében. Persze ha kint nincs szükséged a visszaadott értékre, nem kell azt mindenáron változóba tenni, az értékadás elhagyható.A metódus törzse egy külön világ, itt csak a field-eket és a beadott paramétereket látod, ezekkel dolgozhatsz. 
 A paraméterek érték szerint adódnak át. Ez primitív típusoknál (int, char, boolean, stb.) egyértelmű, az érték átadásra kerül, de a metódusban bármit is csinálsz vele, az a metóduson kívül nem fog érvényre jutni. Immutable típusoknál (pl. String) sincs veszély, mert azok úgy lettek megalkotva, hogy bármit is csinálsz vele, magán az objektum állapotán nem változtat, inkább új objektumot hoz létre.
 Viszont van minden más (pl. a fentebb említett Dog osztály, vagy éppen a tömbök), amelyek akár több értéket is képviselhetnek. Ezért aztán csak azok memóriacíme kerül értékként átadásra, így ha ezek tartalmát módosítod a metóduson belül, a módosításod a metóduson kívül is érvényre jut. Hiszen a metóduson kívül létező tömb és a metódusnak átadott tömb címe ugyanaz, ugyanazt a memóriaterületet piszkálod.
 És itt jutottunk el ahhoz a csúnya megoldáshoz, amit alkalmaztam: átadtam a torvalogatas tömböt a metódusnak, pedig az csak ír bele. Nem szép dolog metóduson belül a paramétereket változtatni, normális esetben csak olvasni szabadna, de ez például egy módszer arra, hogy a metódus több dolgot is változtasson (mivel csak egy visszatérési értéke lehet, és azt a db-re elpazaroltuk).
 Persze a több visszatérési értékre van más megoldás is, pl. minden visszaadandó cuccot becsomagolni egy objektumba, de egyelőre szerintem ennyi is elég.Kellemes refaktorálást. Miközben bontod szét a kódot, valószínűleg a mostani hiba okát is meg fogod találni. Ha lehet, említsd meg a tanárnak, hogy az ezersoros programod kezd átláthatatlanná válni, meséljen már az osztályokról, példányokról és metódusokról. Ami pedig az érettségit illeti: Egy problémát meg lehet oldani jól és hatékonyan, de meg lehet oldani gányolással is. Nem kell ismerni az osztályokat, a metódusokat, de még a for ciklust sem hozzá. Csak éppen évekkel tovább tart a megoldás, és lehet hogy kapsz rá egy kettest. És egy bizonyos méret felett az ember már nem a megoldással foglalkozik, hanem a kapálózással, hogy a víz felszínén tudjon maradni. Kizárt, hogy érettségin ne kelljen ezeket az alap dolgokat használni. De tedd fel magadnak a kérdést: Könnyű érettségit akarsz? Jó munkahelyet magas fizuval? Ha igen, és a tömböket már unalomig gyakoroltad, akkor érdemes továbblépni a List-re. Annyi hasznos dolog van még a nyelvben, sose jutsz a végére. Bár lehet, hogy feleslegesen pötyögtem... csapd fel a tankönyvet a metódusnál és hajrá. Persze a legjobb az lenne, ha az osztályok és metódusok után egy elegáns mozdulattal telepítené mindenki a junit-ot, és TDD-ben gyakorolnátok tovább. Mennyivel könnyebb lenne az immáron jól struktúrált kódon megtalálni a hibákat. És a refaktorálás is veszélytelenebb lenne. Szép álom. 
- 
			
			  norbert1998 nagyúr válasz  WonderCSabo
							
							
								#7436
							
							üzenetére WonderCSabo
							
							
								#7436
							
							üzenetére[link] 
 A mappában az adatok txt lesz az. Küldöm az egészet, hátha mész valamira. Úgyis csak 32 KB. 
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7435
							
							üzenetére norbert1998
							
							
								#7435
							
							üzenetéreTöltsd fel a forrásfájlt valahova, változatlanul. 
- 
			
			  norbert1998 nagyúr válasz  WonderCSabo
							
							
								#7434
							
							üzenetére WonderCSabo
							
							
								#7434
							
							üzenetéreJaa, értem. Ezt nem vettük még. Egyszer mintha szórakoztam volna egy-két osztály létrehozásával, de kb. ennyi is volt. Arra lehet tipped, hogy miért van egy plusz, nem látható karakter az első beolvasott elem mögött? (A forrásban nincs szóköz) 
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7432
							
							üzenetére norbert1998
							
							
								#7432
							
							üzenetéreMetódus-t meg nem lehet máshogy hívni Javában: pulic class Main { 
 public static void main(String[] args) { // a main egy metódus
 }
 public String masikMetodus() { // masikMetodus egy másik metódus
 return null;
 }
 }
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7432
							
							üzenetére norbert1998
							
							
								#7432
							
							üzenetéreA Collections-re gondolom csoportok alatt, és az nem primitív tömb, amit Te használsz, hanem modern adatszerkezetek (tárolók) gyűjteménye. A kettő nem egyelő, nem mondjuk a tömböt Collection-nek, mert nem az. PL. Tömb: int[] tomb = new tomb[1000]; // lefoglalok előre sokat 
 tomb[0] = 1;
 int a = tomb[i]; // benne volt-e? mire vizsgáljak?
 i > 1000 // le kell foglalni új tömböt, mert már nem férne bele az elemekCollections: List<Integer> lista = new ArrayList<>(); 
 lista.add(2);
 lista.add(3);
 lista.remove(2);// dinamikusan változik a mérete, "sosem" telik be, kivenni is lehet elemeket, a benne lévő elemek ismertek Ez csak egy típusó Collection, van még nagyon sok. 
- 
			
			  norbert1998 nagyúr válasz  WonderCSabo
							
							
								#7431
							
							üzenetére WonderCSabo
							
							
								#7431
							
							üzenetéreLehet, hogy igen(bár nem hiszem, sőt), de ti a tömböket is csoportoknak meg nem tudom még minek hívtátok, amit akár mondhatnátok estig is, akkor sem érteném meg, hogy az ott egy tömböt jelentene, mert mi mindig csak tömbnek hívtuk. 
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7428
							
							üzenetére norbert1998
							
							
								#7428
							
							üzenetéreÚj metódusok írását se tanultátok? Szerk: Ezek szerint nem... Mondd meg a tanárnak, hogy ilyen komplex feladat (már ha az tényleg) megoldásához biztosítsa a megfelelő eszköztárat. 
- 
			
			  norbert1998 nagyúr válasz  norbert1998
							
							
								#7428
							
							üzenetére norbert1998
							
							
								#7428
							
							üzenetéreKözelebb kerültem ismét a megoldáshoz. Mégis a beolvasással lehet valami. A legelső beolvasott tömbelem (azaz a példában az első sor Bukfenc-e) egy nem látható karakterrel rövidebb, mint a többi tömb elem(e). A szöveg BOM nélküli UTF-8-ba van formázva, txt fájl, és ahogy fent látható, szóközök nélkül pontosvesszők választják el őket. gygabor88: És az mi és hogy?  
- 
			
			válasz  norbert1998
							
							
								#7428
							
							üzenetére norbert1998
							
							
								#7428
							
							üzenetéreAzért metódusokra szétszedheted. Nem lesz rövidebb, de így legalább kisebb-nagyobb kód blokkokat el tudsz nevezni és akkor már érthetőbb lesz a kód. 
- 
			
			  #39560925 törölt tag Sziasztok, egy jó kis SO kérdéssel jönnék. Ha valami nem világos a kérdésemben, vagy több információ kell, akkor rendelkezésre állok.  
- 
			
			  Sk8erPeter nagyúr válasz  norbert1998
							
							
								#7421
							
							üzenetére norbert1998
							
							
								#7421
							
							üzenetéreÉrtelmesebb lett volna, ha egyből egy tesztelhető kódot dobsz be (értsd: mi csak bedobjuk a fejlesztőkörnyezetbe az adott osztály(oka)t, és mehet a teszt), vagy csak a vonatkozó kódrészletet, nem csak simán bedobod ezt az óriási - ráadásul rosszul tagolt - borzalmat (mert lusták vagyunk kibogarászni ekkora kódot, ami ronda is, gyorsabb lenne lefuttatni). Ekkora mennyiségű kód tényleg mehetne pastebinre (ahol bekattintod, hogy Java-szintaxis szerint legyen kiemelve értelemszerűen). Amúgy nem véletlenül mondtuk korábban, hogy bontsd szét a kódodat több metódusra, ez így valami elképesztő ocsmány és átláthatatlan. (#7423): 
 Ugyanúgy megoldhatod do-while-lal ezt a feladatot is.
- 
			
			  Ursache senior tag válasz  norbert1998
							
							
								#7421
							
							üzenetére norbert1998
							
							
								#7421
							
							üzenetéreLegkozelebb pastebint, vagy hasonlot hasznalj, koszi. 
- 
			
			  KAMELOT titán válasz  PumpkinSeed
							
							
								#7407
							
							üzenetére PumpkinSeed
							
							
								#7407
							
							üzenetéreKöszi szépen!  
- 
			
			  norbert1998 nagyúr válasz  PumpkinSeed
							
							
								#7422
							
							üzenetére PumpkinSeed
							
							
								#7422
							
							üzenetéreÉrtem, köszi  Most megint lehet én vagyok hülye, de egyszerűen nem jut eszembe, hogy lehetne megoldani. 
 Adott egy pár elemes tömb, ami egész számokat tartalmaz. Kéne egy ciklus, ami megnézi, hogy a bevitt int-et (pl. 5-öt) tartalmazza-e a tömb. Ha nem tartalmazza, akkor írja ki, hogy ... és kérje be újra a változót, amíg nem lesz egyenlő a tömb valamelyik elemével.
- 
			
			  PumpkinSeed addikt válasz  norbert1998
							
							
								#7419
							
							üzenetére norbert1998
							
							
								#7419
							
							üzenetéreMegkerestem a kerettanterveket. Ahogy írtad szakos osztály vagytok, szóval a szakközépiskolai kerettanterveket töltöttem le. Ahogy leszűrtem te most 10-es lehetsz (2 év múlva érettségin miatt). Szóval a 10-es tantervet néztem ami két ágazatra szakosodott. Az egyik a programozó másik hálózatos, ahogy én értelmeztem. A programozói szakágon van az algoritmusok és adatszerkezetek valamilyen algoritmusleíró nyelven míg a másikon ugyan ezen a helyen a hálózati kommunikációk. Szóval nem nagyon van meghatározva. Amúgy annak idején 10-ben nekünk C++-t tanítottak, szóval elég régóta van már ez a rendszer. A lényeg az, hogy érettségin a kód működését illetve a felépítését ellenőrzik okos emberek, ugyanis emelt érettségit jobb esetben kijelölt iskolában végzed ahol hozzáértő emberek ellenőrzik. Ha korszerűbben oldod meg mint ahogy amúgy tanultad nem fognak megbuktatni.  
- 
			
			  norbert1998 nagyúr válasz  Sk8erPeter
							
							
								#7420
							
							üzenetére Sk8erPeter
							
							
								#7420
							
							üzenetéreÉn nem ismerem, a tanárOK mondják, hogy rémes a kerettanterv  Szóval, annyit javult a helyzet, hogy most ha a gazda neve, kor vagy tömeg alapján keresek, akkor tökéletes, viszont ha név alapján, akkor a név tömb első elemét valamiért ignorálja. Az egész beolvasás procedúra tulajdonképpen ugyanaz az összes tömbnél, továbbá ha csak szimplán kiiratom azt a tömbelemet, akkor ott van rendesen, hogy Füsti (vagy akármi, amit beviszek arra az elemre), de a kereséskor nem találja. Itt a kód(try catch-ben van, de azt most nem keresem meg, hol a vége-eleje, de nincs azzal gond) 
 Így azt hiszem, egy az egyben be is másolhatváltozók megadásával) futtatható is//változók 
 int fomenu, kilepes=0;
 int bevitel,torles,rendezes,szures,mentes,elvet,kilep;
 int bevkeres,torkeres, szurkor,szurtt;
 int mod;
 //beolvasas
 BufferedReader br=new BufferedReader(new FileReader("adatok.txt"));
 String sor;
 int n=500;
 String [] nev =new String [n];
 String [] gazdnev =new String [n];
 String [] tomeg =new String [n];
 String [] kor =new String [n];
 int olvastomb=0;
 while((sor=br.readLine())!=null){
 nev[olvastomb]=(sor.substring(0, sor.indexOf(";")));
 sor=sor.substring(sor.indexOf(";")+1);
 gazdnev[olvastomb]=(sor.substring(0,sor.indexOf(";")));
 sor=sor.substring(sor.indexOf(";")+1);
 tomeg[olvastomb]=(sor.substring(0, sor.indexOf(";")));
 sor=sor.substring(sor.indexOf(";")+1);
 kor[olvastomb]=sor;
 olvastomb++;
 }
 //problémás részlet
 try{
 int []modvalogatas=new int[n];
 int db=-1;
 int i=0;
 do{
 i=0;
 System.out.println(BLUE+"MEGLÉVŐ ÁLLAT ADATAINAK MÓDOSÍTÁSA MENÜ"+RESET);
 System.out.println("Mi alapján szeretnénk kiválasztani a módosítandó tulajdonságú állatot?");
 System.out.println("1-Név alapján");
 System.out.println("2-Gazdája neve alapján");
 System.out.println("3-Kor alapján");
 System.out.println("4-Testtömege alapján");
 System.out.println("5-Mégsem");
 System.out.println();
 bevkeres=extra.Console.readInt("Melyik menüpontot választja? ");
 switch(bevkeres){
 case 1 : {
 String kereses=extra.Console.readLine("Milyen nevet keressünk?");
 db=0;
 i=0;
 while(nev[i++]!=null){
 
 }
 for (int g=0;g<i;g++){
 if (kereses.equals(nev [g])){
 modvalogatas[db]=g;
 db++;
 }
 
 }
 break;
 }
 case 2 : {//főmenü 1-es menüpont->2-es menüpont
 String kereses=extra.Console.readLine("Mi a gazda neve?");
 db=0;
 i=0;
 while(gazdnev[i++]!=null){
 
 }
 for (int g=0;g<i;g++){
 if (kereses.equals(gazdnev[g])){
 modvalogatas[db]=g;
 db++;
 }
 
 }
 break;
 }
 case 3 : { //főmenü 1-es menüpont->2-es menüpont
 String kereses=extra.Console.readLine("Milyen korút keressünk?");
 db=0;
 i=0;
 while(kor[i++]!=null){
 
 }
 for (int g=0;g<i;g++){
 if (kereses.equals(kor [g])){
 modvalogatas[db]=g;
 db++;
 }
 
 }
 break;
 }
 case 4 : {//főmenü 1-es menüpont->2-es menüpont
 String kereses=extra.Console.readLine("Milyen tömegűt keressünk?");
 db=0;
 i=0;
 while(tomeg[i++]!=null){
 
 }
 for (int g=0;g<i;g++){
 if (kereses.equals(tomeg [g])){
 modvalogatas[db]=g;
 db++;
 }
 
 }
 break;
 }
 case 5: { //főmenü 1-es menüpont->2-es menüpont
 break;
 }
 default: { //főmenü 1-es menüpont->2-es menüpont
 System.out.println(RED+"Hibás értéket adott meg."+RESET);
 }
 }
 try{ //főmenü 1-es menüpont->2-es menüpont
 if(db!=0){
 System.out.println(nev[0]+gazdnev[0]+tomeg[0]+kor[0]);
 System.out.println("Az alábbi találat(ok) keletkeztek. ");
 for (int j=0;j<db;j++){
 System.out.println((modvalogatas[j])+"-"+nev[modvalogatas[j]]+";"+gazdnev[modvalogatas[j]]+";"+kor[modvalogatas[j]]+"év;"+tomeg[modvalogatas[j]]);
 }
 int modos=extra.Console.readInt("Melyik állatot kívánja módosítani a fentiek közül?");
 do{
 System.out.println(BLUE+"ÁLLAT ADATÁNAK MÓDOSÍTÁSA MENÜ"+RESET);
 System.out.println("1-Név módosítása");
 System.out.println("2-Gazda nevének módosítása");
 System.out.println("3-Testtömeg módosítása");
 System.out.println("4-Kor módosítása");
 System.out.println("5-Mégsem");
 System.out.println();
 mod=extra.Console.readInt("Melyik menüpontot választja?");
 switch (mod){
 case 1:{ //főmenü 1-es menüpont->2-es menüpont
 nev[modos]=extra.Console.readLine("Mi az állat új neve?");
 break;
 }
 case 2:{ //főmenü 1-es menüpont->2-es menüpont
 gazdnev[modos]=extra.Console.readLine("Mi az új gazda neve?");
 break;
 }
 case 3:{//főmenü 1-es menüpont->2-es menüpont
 tomeg[modos]=String.valueOf(extra.Console.readInt("Mennyi az állat új tömege?"));
 break;
 }
 case 4:{//főmenü 1-es menüpont->2-es menüpont
 kor[modos]=String.valueOf(extra.Console.readInt("Mennyi idős az állat?"));
 }
 case 5:{//főmenü 1-es menüpont->2-es menüpont
 break;
 }
 default: {//főmenü 1-es menüpont->2-es menüpont
 System.out.println(RED+"Hibás értéket adott meg."+RESET);
 }
 }
 } while(mod!=5);
 }
 else {
 System.out.println("Nincs ilyen állat.");
 }
 System.out.println();
 }catch(Exception e){
 System.out.println(RED+"Hiba történt!: "+e.getMessage()+RESET);
 }
 }while(bevkeres!=5);
 }catch(Exception e){
 System.out.println(RED+"Hiba történt!: "+e.getMessage()+RESET);
 }
 break;
- 
			
			  Sk8erPeter nagyúr válasz  norbert1998
							
							
								#7419
							
							üzenetére norbert1998
							
							
								#7419
							
							üzenetéreÉs a kerettantervben mi van? Az, hogy gyakoroltatni kell a ciklusokat és a tömbök használatát is, és most épp ott tartotok? Csak mert mint előbb írtam - szerkesztettem a hsz.-t közben -, ezekre ennél SOKKAL értelmesebb és használhatóbb példákat is ki lehetne találni, hogy megértsétek a használatát, meg hogy mire jó. Nagyon nem erre, amit mutattál.  És attól még, mert gyakorlatiasabb példákat vesztek, nem lenne muszáj eltérni a kerettantervtől. Most itt az infós kerettantervet fikázzuk, de még nem említette senki, hogy pontosan mi is van benne, ami szar (nekem most nincs kedvem rákeresni) - biztos egyébként bőven van miért szidni sok tekintetben, de nem ártana némi konkrét információval felvértezve fikázni. És attól még, mert gyakorlatiasabb példákat vesztek, nem lenne muszáj eltérni a kerettantervtől. Most itt az infós kerettantervet fikázzuk, de még nem említette senki, hogy pontosan mi is van benne, ami szar (nekem most nincs kedvem rákeresni) - biztos egyébként bőven van miért szidni sok tekintetben, de nem ártana némi konkrét információval felvértezve fikázni. Amúgy most akkor hogyan is alakítgattad a kódodat, ami nem működik? És akkor most mi a gond, hogy nem írja ki az első elemet? Kicsit nekem már zagyva a leírásod. 
- 
			
			  norbert1998 nagyúr válasz  Sk8erPeter
							
							
								#7418
							
							üzenetére Sk8erPeter
							
							
								#7418
							
							üzenetéreAz a baj, hogy senki nem tudja(se nem sejti), mi lesz az érettségin, csak a kerettantervre lehet támaszkodni. Abban meg ez a sok marhaság van. 
- 
			
			  Sk8erPeter nagyúr válasz  norbert1998
							
							
								#7416
							
							üzenetére norbert1998
							
							
								#7416
							
							üzenetére"De miért a tanár a hülye, ha ez szerepel a kerettantervben? Csak nem mondhatja azt, hogy screw you és tanítaná azt, ami tényleg értelmes, aztán a hülye tanterv alapján felállított érettségin meg sorban megbukunk" 
 Az érettségin az ilyen C-szerű kódolást kérik számon Java-nyelven? Nagyon remélem, hogy nem. Ha meg nem, akkor a tanár hülye, hogy olyan szokásokat próbál belétek verni, amik ennél a programozási nyelvnél kifejezetten károsak, és ocsmánnyá teszik a kódot. Ha tényleg ilyet kérnek számon az érettségin is, akkor qrva nagy gáz van az ottani számonkéréssel is.Nem az van, hogy a tanár is most tanulgatja a Javát, és korábban más nyelvben programozott? 
 A ciklusok, tömbök gyakoroltatására létezne ezerszer értelmesebb és gyakorlatiasabb feladat is.(#7417): tehát akkor most mi is a kódod, ami nem működik?  
- 
			
			  norbert1998 nagyúr Odáig tudtam elvinni, hogy a név tömb alapján fennáll, hogy a legelső elemet nem hajlnadó kiírni, de a kor, tömeg és gazda neve tömbbel tökéletesen működik, pedig egy az egyben copy paste, csak a műveleteknél a tömb nevét mondjuk nev-ről kor-ra írtam át. 
 És igen, a tömb tartalmazza azt az első elemet 
- 
			
			  norbert1998 nagyúr válasz  dabadab
							
							
								#7415
							
							üzenetére dabadab
							
							
								#7415
							
							üzenetéreDe miért a tanár a hülye, ha ez szerepel a kerettantervben? Csak nem mondhatja azt, hogy screw you és tanítaná azt, ami tényleg értelmes, aztán a hülye tanterv alapján felállított érettségin meg sorban megbukunk! (Igen, mert ebből a fajta tantervből (még hasonlóból sem) nem volt még sohasem érettségi, mi leszünk az elsők majd, két év múlva, szóval tapasztalat semmi nem lesz belőle senkinek. A tavalyi tanévtől 9.-esként kezdőknek (azaz nekünk is) van szakmai tantárgyuk, és kötelező belőle érettségizni, majd utána, ha az megvan, lehet menni technikumra. Amúgy a félreértések elkerülése végett: Az említett 10 órából csak 2 programozás hetente. 
- 
			
			válasz  norbert1998
							
							
								#7414
							
							üzenetére norbert1998
							
							
								#7414
							
							üzenetére"Elhiszem, de manapság mit nem bonyolítanak agyon a NAT-ban?" Ez nem bonyolítás, hanem egy nagy kupac gőzőlgő szar. A jelek szerint a tanárnak fogalma sincs a Javaról, én a helyedben - ha érdekel a programozás - akkor elkezdenék önállóan foglalkozni az témával, mert ebből legfeljebb egy rakat kiírtandó rossz reflex lesz, rendes tudás semmiképpen sem. 
- 
			
			  norbert1998 nagyúr válasz  dabadab
							
							
								#7413
							
							üzenetére dabadab
							
							
								#7413
							
							üzenetéreElhiszem, de manapság mit nem bonyolítanak agyon a NAT-ban? Az idei fizikatananyaghoz például jövő évi matektudás kellene. Azaz szögfüggvények, bármekkora méretű számokkal. Az érdekes meg az, hogy ebben a tanévben csak 90 fokig tanuljuk a szögfüggvényeket. Nem mintha a számológéppel nem lehetne megnézni, de ez olyan mint a gyök alatt 4. Lehet 2 és -2 is. 
- 
			
			válasz  norbert1998
							
							
								#7410
							
							üzenetére norbert1998
							
							
								#7410
							
							üzenetéreA problema az, hogy gyakorlatilag C64 BASIC-ben programoztok. Bar persze Javaban is lehet fix meretu tomboket hasznalni meg ezersoros methodokat irni, de ezek olyan dolgok, amiket egy rendes Java programozo csak nagyon kulonleges helyzetekben alkalmaz, ezeknek mar felsobb szinteken kellene elokerulniuk, semmikeppen sem kezdoknel. 
- 
			
			  norbert1998 nagyúr válasz  WonderCSabo
							
							
								#7411
							
							üzenetére WonderCSabo
							
							
								#7411
							
							üzenetéreOsztályok nem voltak még. Ez van a tantervben, mást nem nagyon lehet tenni. A tanár meg konkrétan elfoglaltabb, mint az igazgató és amellett cirka 15 osztálynak szakmai tanára, csak a mi osztályunknak 10 órát tart egy héten, szóval kiegészíteni a kerettantervet kicsit húzós lenne. Azt hiszem, javult egy kicsit a helyzet, mostmár keres rendesen, de az első találatot még mindig nem írja ki  
- 
			
			  WonderCSabo félisten válasz  norbert1998
							
							
								#7408
							
							üzenetére norbert1998
							
							
								#7408
							
							üzenetéreEzt a megoldást a tanár ajánlotta nektek? Mert ez borzalmas. Csináljatok egy Dog nevű osztályt, annak legyen név, gazda, tömeg, kor mezői, és rögtön elég egy tömbben tárolni. (Azt mondanám, hogy List-ben, de gondolom Collections még nem volt). Meg lehetne for ciklus while helyett, azt se vettétek még? public class Dog { 
 public String name, owner, age, weight; // getter setter kéne, típus lehet szám, stb.
 @Override
 public String toString() {
 return name + " " + owner + " " + age + " " + weight;
 }
 }
 ...
 Dog[] dogs = new Dogs[500];
 // read
 int i = 0;
 Dog dog = dogs[i];
 while(dog != null) {
 if (dog.name.equals(input)) {
 System.out.println(dog);
 }
 dog = dogs[++i];
 }Egyébként már a beolvasásnál el lehetne menteni, hány sor volt, és akkor lehetne addig menni a null ellenőrzés helyett. Megelőztek. 
- 
			
			válasz  norbert1998
							
							
								#7408
							
							üzenetére norbert1998
							
							
								#7408
							
							üzenetéreEz így nagyon gáz. 
 Egyrészt ez a nullig keresés olyan, mintha C-ben programoznál, márpedig a Java nem C, itt vannak rendes containerek, tessék azokat rendesen használni iterátorral. Másrészt meg ahelyett, hogy csinálnál ezer tömböt (listát, akármit) csinálhatnál egyet, amibe classokat raksz, minek van név, gazdnév, tömeg meg hasonló fieldje.
- 
			
			  norbert1998 nagyúr Totál nem fog ma az agyam, egy ilyenen elakadok. Mit ronthatok el folyton? 
 A tömbök így vannak, és azok rendben is vannak. (Első oszlop:név, 2. oszlop gazdnev, 3. oszlop tomeg és a negyedik oszlop a kor.
 A tömbök azért null-ig mennek, mert husszú tömbbel dolgozunk(pl 500 elemes), mert a tömb hosszának mindig változnia kellene.
 Bukfenc;Pista;65;2
 Bukfenc;Isti;65;2
 Füsti;Pista;65;2
 Füsti;Pista;65;2
 Füsti;Pista;65;2
 Füsti;Pista;65;2
 Füsti;Pista;65;2Hibajelenség: Ha bukfencre keresek rá, semmit nem talál, ha füstire, akkor talál, meg a végére kidob egy null;null;null;null-ot, mint 7. találat. String kereses=extra.Console.readLine("Milyen nevet keressünk?"); 
 db=0;
 i=0;
 while (nev[i]!=null){
 if (kereses.equals(nev [i])){
 modvalogatas[db++]=i+1;
 }
 i++;
 }
 
 if(db!=0){
 System.out.println("Az alábbi találat(ok) keletkeztek. ");
 for (int j=0;j<db;j++){
 System.out.println(modvalogatas[j]+"-"+nev[modvalogatas[j]]+";"+gazdnev[modvalogatas[j]]+";"+kor[modvalogatas[j]]+"év;"+tomeg[modvalogatas[j]]);
 }
- 
			
			  KAMELOT titán Sziasztok! 
 Szeretnék megtanulni JAVA programozni. Ehhez kéne nekem progi valamint magyar pdf vagy word fájl amiben minden pontosan le van írva.
 Progit próbáltam leszedni, de nem húzott semmit. Valaki valami linket tudna dobni!
 Elősre is köszönöm a segítségeteket! 
- 
			
			  tick aktív tag próbálta már valaki a VS "code" (ingyenes, Linuxon is futó) verzióját? én vagyok béna vagy tényleg nem tud java-t futtatni? 
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- BESZÁMÍTÁS! Microsoft XBOX One 500GB fekete játékkonzol garanciával hibátlan működéssel
- Samsung Galaxy S25 Blueblack 120 Hz AMOLED, AI-kamera, erős teljesítmény 12/128 GB Új
- Bomba ár! Lenovo X1 Carbon 4th: i5-6GEN I 8GB I 512SSD I 14" FHD I HDMI I Cam I W11 I Gari
- HIBÁTLAN iPhone 13 Pro Max 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3391
- AKCIÓ! 750W Seasonic PRIME TX-750 Titanium tápegység garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő
 
								 
							 
								 
								 
							
 
								 
							 
							 
								 
								 
								 
							 
							
 
 
 
							
 
								 
								 
								 
							 
							
 
								 
								 
							 
							
 
							 
								
 
							 
								
 
								 
							 
								 
								 
							 
							 
								 
							 
								 
 


