Java/Python/C++ hjálp...

Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: Java hjálp...

Pósturaf intenz » Fös 08. Okt 2010 01:18

Ég er að gera rosa skemmtilegt, skrifa Linux skipunina 'wc' í C++


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64

Skjámynd

Höfundur
KermitTheFrog
Kóngur
Póstar: 4273
Skráði sig: Mán 07. Júl 2008 23:32
Reputation: 67
Staða: Ótengdur

Re: Java hjálp...

Pósturaf KermitTheFrog » Fös 08. Okt 2010 01:59

Was ist das?




starionturbo
Gúrú
Póstar: 542
Skráði sig: Mán 24. Des 2007 11:23
Reputation: 8
Staðsetning: localhost
Staða: Ótengdur

Re: Java hjálp...

Pósturaf starionturbo » Fös 08. Okt 2010 10:23

KermitTheFrog skrifaði:Was ist das?


Skipun sem Paul Rubin og David MacKenzie skrifuðu, en hún getur talið línur, orð characters og bytes ásamt því að finna lengstu línuna.

Einfalt dæmi í php sem ég kastaði upp hérna...

Kóði: Velja allt

$fp = fopen('php://stdin','r');
$in = '';
while ( ! feof($fp)){ $in .= fgets($fp); }
fclose($fp);
$in = substr($in,0,strlen($in)-1);
switch($_SERVER['argv'][1])
{
        case '-c': echo strlen($in); break;
        case '-m': echo mb_strlen($in); break;
        case '-l': echo count(explode("\n", $in)); break;
        case '-w': echo count(explode(' ', $in)); break;
}


Foobar

Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: Java hjálp...

Pósturaf intenz » Lau 09. Okt 2010 17:47

starionturbo skrifaði:
KermitTheFrog skrifaði:Was ist das?


Skipun sem Paul Rubin og David MacKenzie skrifuðu, en hún getur talið línur, orð characters og bytes ásamt því að finna lengstu línuna.

Einfalt dæmi í php sem ég kastaði upp hérna...

Kóði: Velja allt

$fp = fopen('php://stdin','r');
$in = '';
while ( ! feof($fp)){ $in .= fgets($fp); }
fclose($fp);
$in = substr($in,0,strlen($in)-1);
switch($_SERVER['argv'][1])
{
        case '-c': echo strlen($in); break;
        case '-m': echo mb_strlen($in); break;
        case '-l': echo count(explode("\n", $in)); break;
        case '-w': echo count(explode(' ', $in)); break;
}

Flottur, en þetta er ögn meira mál í C++ sérstaklega þar sem við megum ekki nota nein builtin library nema iostream og fstream og eigum að lesa eitt byte/staf fyrir sig. :P


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64


starionturbo
Gúrú
Póstar: 542
Skráði sig: Mán 24. Des 2007 11:23
Reputation: 8
Staðsetning: localhost
Staða: Ótengdur

Re: Java hjálp...

Pósturaf starionturbo » Þri 12. Okt 2010 01:11

intenz skrifaði:
starionturbo skrifaði:
KermitTheFrog skrifaði:Was ist das?


Skipun sem Paul Rubin og David MacKenzie skrifuðu, en hún getur talið línur, orð characters og bytes ásamt því að finna lengstu línuna.

Einfalt dæmi í php sem ég kastaði upp hérna...

Kóði: Velja allt

$fp = fopen('php://stdin','r');
$in = '';
while ( ! feof($fp)){ $in .= fgets($fp); }
fclose($fp);
$in = substr($in,0,strlen($in)-1);
switch($_SERVER['argv'][1])
{
        case '-c': echo strlen($in); break;
        case '-m': echo mb_strlen($in); break;
        case '-l': echo count(explode("\n", $in)); break;
        case '-w': echo count(explode(' ', $in)); break;
}

Flottur, en þetta er ögn meira mál í C++ sérstaklega þar sem við megum ekki nota nein builtin library nema iostream og fstream og eigum að lesa eitt byte/staf fyrir sig. :P


http://www.gnu.org/software/cflow/manua ... mmand.html

Þessi ætti að redda smá grunn, bara C.


Foobar

Skjámynd

Höfundur
KermitTheFrog
Kóngur
Póstar: 4273
Skráði sig: Mán 07. Júl 2008 23:32
Reputation: 67
Staða: Ótengdur

Re: Java hjálp...

Pósturaf KermitTheFrog » Þri 19. Okt 2010 22:44

Quick question: Get ég extractað fleiri en eina breytu úr falli?



Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: Java hjálp...

Pósturaf intenz » Þri 19. Okt 2010 23:00

KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?

Það er svolítið í forritunarmálum sem heitir "call by reference" void func( int& var1, int& var2 ) en veit ekki hvort þetta sé mögulegt í Java.


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64

Skjámynd

Höfundur
KermitTheFrog
Kóngur
Póstar: 4273
Skráði sig: Mán 07. Júl 2008 23:32
Reputation: 67
Staða: Ótengdur

Re: Java hjálp...

Pósturaf KermitTheFrog » Þri 19. Okt 2010 23:08

Eftir stutt gúgl sýnist mér það ekki mögulegt. En annað: http://www.erights.org/elang/collect/String-ref.html

Þarna á síðunni undir Indexing Expression eru leiðbeiningar um það hvernig skal ná í ákveðna stafi eða ákveðinn hluta strengjabreytu. Ég get á engan hátt fengið þetta til að virka í java. Man að ég náði einhverntímann að nota get() til að ná í einn staf en mér tókst ekki að taka part af strengnum ("foobar" run(2,4)).

Kann einhver á þetta?



Skjámynd

appel
Stjórnandi
Póstar: 5596
Skráði sig: Fös 13. Jún 2003 16:46
Reputation: 1054
Staða: Ótengdur

Re: Java hjálp...

Pósturaf appel » Þri 19. Okt 2010 23:09

KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?


Kóði: Velja allt

void someMethod() {
  MyObject obj = new MyObject();
  doSomethingWithMyObject(obj);
  System.out.println(obj.getA());
  System.out.println(obj.getB());
  System.out.println(obj.getC());
}

void doSomethingWithMyObject(MyObject obj) {
  obj.setA(45);
  obj.setB(13);
  obj.setC(6);
}


Milljón aðrar leiðir, og þessi hér að ofan er ekki sú besta.


*-*

Skjámynd

appel
Stjórnandi
Póstar: 5596
Skráði sig: Fös 13. Jún 2003 16:46
Reputation: 1054
Staða: Ótengdur

Re: Java hjálp...

Pósturaf appel » Þri 19. Okt 2010 23:11

KermitTheFrog skrifaði:Eftir stutt gúgl sýnist mér það ekki mögulegt. En annað: http://www.erights.org/elang/collect/String-ref.html

Þarna á síðunni undir Indexing Expression eru leiðbeiningar um það hvernig skal ná í ákveðna stafi eða ákveðinn hluta strengjabreytu. Ég get á engan hátt fengið þetta til að virka í java. Man að ég náði einhverntímann að nota get() til að ná í einn staf en mér tókst ekki að taka part af strengnum ("foobar" run(2,4)).

Kann einhver á þetta?


http://download.oracle.com/javase/6/doc ... charAt(int)
http://download.oracle.com/javase/6/doc ... int,%20int)


*-*

Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: Java hjálp...

Pósturaf intenz » Þri 19. Okt 2010 23:33

appel skrifaði:
KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?


Kóði: Velja allt

void someMethod() {
  MyObject obj = new MyObject();
  doSomethingWithMyObject(obj);
  System.out.println(obj.getA());
  System.out.println(obj.getB());
  System.out.println(obj.getC());
}

void doSomethingWithMyObject(MyObject obj) {
  obj.setA(45);
  obj.setB(13);
  obj.setC(6);
}


Milljón aðrar leiðir, og þessi hér að ofan er ekki sú besta.

Ég held alveg örugglega að hann sé að tala um að returna mörgum breytum/gildum?


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64

Skjámynd

appel
Stjórnandi
Póstar: 5596
Skráði sig: Fös 13. Jún 2003 16:46
Reputation: 1054
Staða: Ótengdur

Re: Java hjálp...

Pósturaf appel » Mið 20. Okt 2010 00:12

intenz skrifaði:
appel skrifaði:
KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?


Kóði: Velja allt

void someMethod() {
  MyObject obj = new MyObject();
  doSomethingWithMyObject(obj);
  System.out.println(obj.getA());
  System.out.println(obj.getB());
  System.out.println(obj.getC());
}

void doSomethingWithMyObject(MyObject obj) {
  obj.setA(45);
  obj.setB(13);
  obj.setC(6);
}


Milljón aðrar leiðir, og þessi hér að ofan er ekki sú besta.

Ég held alveg örugglega að hann sé að tala um að returna mörgum breytum/gildum?


Þú encapsuleitar return gildin í einum object.

Þetta væri verra:

Kóði: Velja allt

name, address, phone = getPersonDetails(someKennitala)


frekar en

Kóði: Velja allt

person = getPersonDetails(someKennitala)


og svo sækja:

Kóði: Velja allt

person.getName()
person.getAddress()
person.getPhone()



Annars er ekki hægt að returna mörgum gildum, bara einu gildi eða engu.


*-*

Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Daz » Mið 20. Okt 2010 10:07

Eða skila Array. Það sem Appel stakk upp á er augljóslega "rétta" leiðin, en mig langaði bara að tjá mig líka.



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 20. Okt 2010 12:47

appel skrifaði:Þetta væri verra:

Kóði: Velja allt

name, address, phone = getPersonDetails(someKennitala)


frekar en

Kóði: Velja allt

person = getPersonDetails(someKennitala)


Þetta er náttúrulega ekki idiomatic java kóði (enda ekki hægt, rite?). Í Python er það mjög fínn siður að skila tuple og unpakka í tvær eða fleiri breytur.

@OP: ekki berjast við málið, ef þú ert að reyna að gera eitthvað sem virðist ekki vera hægt að gera í því máli sem þú notar á örugglega að gera þetta öðruvísi í því máli. Svo er það auðvitað spurning hvenær þarf að skila tveimur gildum úr falli, hvað í ósköpunum ertu að gera sem kallar á tvö return gildi?



Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Daz » Mið 20. Okt 2010 12:58

Fullkomlega eðilegt að skilja object (baun) sem svari, sem inniheldur mörg mismunandi gildi.



Skjámynd

Höfundur
KermitTheFrog
Kóngur
Póstar: 4273
Skráði sig: Mán 07. Júl 2008 23:32
Reputation: 67
Staða: Ótengdur

Re: Java hjálp...

Pósturaf KermitTheFrog » Mið 20. Okt 2010 13:06

dori skrifaði:
appel skrifaði:Þetta væri verra:

Kóði: Velja allt

name, address, phone = getPersonDetails(someKennitala)


frekar en

Kóði: Velja allt

person = getPersonDetails(someKennitala)


Þetta er náttúrulega ekki idiomatic java kóði (enda ekki hægt, rite?). Í Python er það mjög fínn siður að skila tuple og unpakka í tvær eða fleiri breytur.

@OP: ekki berjast við málið, ef þú ert að reyna að gera eitthvað sem virðist ekki vera hægt að gera í því máli sem þú notar á örugglega að gera þetta öðruvísi í því máli. Svo er það auðvitað spurning hvenær þarf að skila tveimur gildum úr falli, hvað í ósköpunum ertu að gera sem kallar á tvö return gildi?


Er með fall sem tekur þrjár random textabreytur úr þremur mismunandi fylkjum og ég vil láta fallið skila þessum þrem. Ég get sosum gert það í main fallinu fyrst þetta er eitthvað gífurlegt mál.

Er ekki hægt að setja þær bara í array og skila því?



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 20. Okt 2010 13:08

Ég myndi segja að það væri mun eðlilegra fyrir nákvæmlega þetta dæmi að búa frekar til fall sem skilar random textabreytu úr textafylki. Og keyra það fall einu sinni fyrir hvert fylki.



Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Daz » Mið 20. Okt 2010 13:12

Fallið tekur inn 3 array og á að skila einu gildi úr hverju?
Þú skilar þá bara array til baka, með þeim gildum sem þú vilt skila.



Skjámynd

Höfundur
KermitTheFrog
Kóngur
Póstar: 4273
Skráði sig: Mán 07. Júl 2008 23:32
Reputation: 67
Staða: Ótengdur

Re: Java hjálp...

Pósturaf KermitTheFrog » Mið 20. Okt 2010 13:18

dori skrifaði:Ég myndi segja að það væri mun eðlilegra fyrir nákvæmlega þetta dæmi að búa frekar til fall sem skilar random textabreytu úr textafylki. Og keyra það fall einu sinni fyrir hvert fylki.


En fylkin eru mismunandi. a fylki inniheldur aðrar breytur en b og c og öfugt.

edit: ahh ég skil þig núna, prufa það.

Og Daz: ég var búinn að reyna það en hef greinilega gert það eitthvað vitlaust svo ég hélt það væri bara ekki í boði.



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 20. Okt 2010 13:23

KermitTheFrog skrifaði:En fylkin eru mismunandi. a fylki inniheldur aðrar breytur en b og c og öfugt.
Þú getur líka haft það í huga að þú ert með fylki sem er með n stök sem hafa index á bilinu 0..n-1. Búðu bara til random tölu á því bili og þá ertu með random stak. Skiptir engu með hvað er í fylkinu.



Skjámynd

Höfundur
KermitTheFrog
Kóngur
Póstar: 4273
Skráði sig: Mán 07. Júl 2008 23:32
Reputation: 67
Staða: Ótengdur

Re: Java hjálp...

Pósturaf KermitTheFrog » Mið 20. Okt 2010 13:29

Hvernig returna ég fylkinu? return d; virkar ekki, return d[]; virkar ekki, hvernig geri ég?

eða... Dr. Java setur ekkert út á return d; en þegar ég ætla að koma því inn í main fallið þá vill hann ekki compile-a



Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Daz » Mið 20. Okt 2010 14:14

KermitTheFrog skrifaði:Hvernig returna ég fylkinu? return d; virkar ekki, return d[]; virkar ekki, hvernig geri ég?

eða... Dr. Java setur ekkert út á return d; en þegar ég ætla að koma því inn í main fallið þá vill hann ekki compile-a

Kóði: Velja allt

public String[] fall(String[] var1,String[] var2,String[] var3){
   
   String[] retval = new String[3];
   retval[0] = var1[0];
   retval[1] = var2[0];
   retval[2] = var3[0];
   return retval;
   
}


þú returnar breytunni, hún getur ekki heitað d[].



Skjámynd

Höfundur
KermitTheFrog
Kóngur
Póstar: 4273
Skráði sig: Mán 07. Júl 2008 23:32
Reputation: 67
Staða: Ótengdur

Re: Java hjálp...

Pósturaf KermitTheFrog » Mið 20. Okt 2010 15:11

Já, var kominn með það en þegar ég ætla að gera t.d. String eða String[] breyta = fall(breytur) í main fallinu þá gengur það ekki upp.



Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: Java hjálp...

Pósturaf Daz » Mið 20. Okt 2010 15:37

KermitTheFrog skrifaði:Já, var kominn með það en þegar ég ætla að gera t.d. String eða String[] breyta = fall(breytur) í main fallinu þá gengur það ekki upp.


Hvaða villa kemur?



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Java hjálp...

Pósturaf dori » Mið 20. Okt 2010 15:38

KermitTheFrog skrifaði:Já, var kominn með það en þegar ég ætla að gera t.d. String eða String[] breyta = fall(breytur) í main fallinu þá gengur það ekki upp.

Hvernig væri að henda í mann kóða svo við sjáum hvað þú ert að reyna?