Síða 1 af 1
Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 16:40
af baddeh
Sælir
Ég er á fyrsta ári í HÍ og er í miklu vandræðum í Tölvunarfræði. Þetta er bara inngangurinn að Java Porgramming.
http://introcs.cs.princeton.edu/java/home/ (Erum komin í kafla 2.1, næsta vika verður 2.2-2.3)
Ef einhver er til í að taka mig í einkennslu/aðstoð þá væri það snilld! Aðsjálfsögðu borga ég fyrir hana.
Þið megið hringja í mig (847-6218) eða senda mér mail á
baddeh@hotmail.com(Vissi ekkert hvar ég átti að posta þessu)
Takk fyrir, Barði Páll
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 20:54
af baddeh
Ég get líka sent verkefnin í tölvupósti ef einhver hefur meiri áhuga fyrir því
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 21:13
af SolidFeather
Komdu bara með dæmin hingað
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 21:59
af baddeh
1. Write a static method max3() that takes three int values as arguments and returns the value of the largest one. Add an overloaded function that does the same thing with three double values.
2. Write a static method lg() that takes an int value N as argument and returns the largest int not larger than the base-2 logarithm of N. Do not use Math.
3. Write a method any() that takes an array of boolean values as argument and returns true if any of the entries in the array is true, and false otherwise. Write a method all() that takes an array of boolean values as argument and returns true if all of the entries in the array are true, and false otherwise.
4.
Í þessu verkefni sönnum við fallið að vitlausHelmingunarLeit skili alltaf réttri útkomu
(þegar það skilar útkomu).
// Notkun: i = vitlausHelmingunarLeit(a,x)
// Fyrir: a er raðað í vaxandi röð
// Eftir: i er -1 ef x er ekki í fylkinu a
// annars er í þ.a. a[i] == x
public static int vitlausHelmingunarLeit(int[] a, int x) {
int low = 0, high = a.length-1;
int mid = (low+high)/2;
while (low <= high) {
// Fastayrðing: 0<= low, high <= a.length-1
// x getur aðeins verið í a[low] : : : a[high]
mid = (low+high)/2;
if (a[mid] < x) {
low = mid;
}
else if (a[mid] > x) {
high = mid;
}
else{
return mid;
}
}
return -1;
}
Sannið að forritið er rétt í því tilviki að stakið x er í fylkinu a. Munið þau 3 atriði sem
þarf að sanna fyrir while lykkjur. Þar sem það er return setning inni í while lykkjunni þá
eru í raun tvö skilyrði sem þurfa að gilda. R1 sem er skilyrðið low <= high og R2 sem er
a[mid] != x. Þar sem við gerum ráð fyrir að x er í a þá þurfum við aðeins að einbeita
okkur að R2 skilyrðinu. Sameiginlega R skilyrðið er því R = R1 ^ R2.Athugið að forskilyrðið fyrir while lykkjuna er forskilyrði fallsin og eins með eftirskilyrðið.
Gefið dæmi um fylki a og tölu x þar sem að fallið skilar réttu gildi. Gefið annað dæmi þar
sem fallið lendir í endalausri lykkju, rekið ástand forritsins í hverju skrefi (þ.e. skrifið gildi á
öllum breytum).
(veit að það er
Er ekki að biðja um eingöngu lausnirnar enda læri ég lítið á því...
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 22:11
af Daz
nr. 1.
Skilurðu spurninguna? Geturðu t.d. leyst
"Write a static method max3() that takes three int values as arguments and returns the value of the largest one."?
Leystu þetta, svo höldum við áfram.
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 22:31
af baddeh
public class Max{
pulbic static void main(String[]args){
}
public static int max3(int a, int b, int c){
int max = a;
if (b > max) max = b;
if (c > max) max = c;
return max;
}
public static double max3(double a, double b, double c){
double max = a;
if (b > max) max = b;
if (c > max) max = c;
return max;
}
}
Er ekki viss hvað ætti að koma í main og hvernig ég á að prenta þetta,,,
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 22:34
af hagur
Sýnist max3 föllin hjá þér vera alveg rétt ...
Í main þarftu nú bara að kalla í föllin með einhverjum 3 tölum sem parameter og skrifa út það sem þau skila.
Hint: System.out.println
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 22:45
af coldcut
Barði...
Mættu bara niðrí nemendaaðstöðu og ég er viss um að það eru einhverjir sem vilja hjálpa þér með þetta, enda eintómir öðlingar í þessu námi!
Re: Hjálp í forritun!!!
Sent: Fös 07. Okt 2011 23:32
af Daz
nr. 2. Það eru til einhverjar aðferðir til að reikna log í base 2, aðrar en math. Það er örugglega búið að nefna það í bókinni þinni og þess vegna er dæmið um það.
svo er þægilegt að nota code tögin þegar maður setur kóða inn hérna
Kóði: Velja allt
public helloWorld
{
public static void main(String[] args)
{
System.out.println("Hello world!")
}
}
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 02:20
af stuxnet
Kóði: Velja allt
public class Runner {
public static void main(String[] args) {
// Kall í dæmi 1
System.out.println(max3(2,5,7));
System.out.println(max3(2.0,5.0,7.0));
// Kall í dæmi 2
System.out.println(lg(1024));
// Kall í dæmi 3
boolean[] b={true, false, true};
System.out.println(any(b));
System.out.println(all(b));
}
// Dæmi 1
public static int max3(int x, int y, int z) {
return x>y?(x>z?x:(y>z?y:z)):(y>z?y:(x>z?x:z));
}
public static double max3(double x, double y, double z) {
return x>y?(x>z?x:(y>z?y:z)):(y>z?y:(x>z?x:z));
}
// Dæmi 2
public static int lg(int n) {
int lg=0;
while((n>>=1)!=0){lg++;}
return lg;
}
// Dæmi 3
public static boolean any(boolean[] a) {
boolean r=false;
for(boolean b:a) {r|=b;}
return r;
}
public static boolean all(boolean[] a) {
boolean r=true;
for(boolean b:a) {r&=b;}
return r;
}
}
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 03:03
af Marmarinn
return x>y?(x>z?x:(y>z?y:z)):(y>z?y:(x>z?x:z));
Ljótur , einstaklega ljótur, og ólæsilegur kóði sem mér sýnist þar að auki að sé ekki kendur í bókinni sem var vísað í.
Kafli.
http://introcs.cs.princeton.edu/java/13flow/ (ekki notað en minnst á þarna)
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 10:12
af Daz
stuxnet skrifaði:--snip code nema--
Kóði: Velja allt
return x>y?(x>z?x:(y>z?y:z)):(y>z?y:(x>z?x:z));
Lausnir verða ekki betri ef þær eru í færri línum, ég sé ekki betur en að þetta séu 5 if setningar sem baddeh leysti með 2. Svo er ekki mikil hjálp í því að gefa upp heila lausn í fyrsta heimaverkefni, þá er ekki góð von á að næsta verkefni takist.
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 14:37
af stuxnet
Daz skrifaði:stuxnet skrifaði:--snip code nema--
Kóði: Velja allt
return x>y?(x>z?x:(y>z?y:z)):(y>z?y:(x>z?x:z));
Lausnir verða ekki betri ef þær eru í færri línum, ég sé ekki betur en að þetta séu 5 if setningar sem baddeh leysti með 2. Svo er ekki mikil hjálp í því að gefa upp heila lausn í fyrsta heimaverkefni, þá er ekki góð von á að næsta verkefni takist.
Aðalmálið var ekki að gefa honum lausn, heldur að sýna honum hvernig kallað er í föll og hvernig prenta á skilagildið út. Hann er augljóslega ekki að fara að nota svona "obfuscated" kóða, þótt hann gefi rétt svör.
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 15:27
af Daz
Ef þú vildir sýna honum hvernig á að kalla á föll þá gastu bara gert
Kóði: Velja allt
public class HelloWorld2
{
public static void main(String[] args)
{
System.out.println(hellostring());
}
public String hellostring()
{
return "Hello world!";
}
}
Og þetta var ekki "obfuscated" þetta var bara illa uppsett nested if. En ég er ekki beint að setja út á kóðann hjá þér, datt bara í hug að einhver gæti ruglast og haldið að einnar línu lausn gæti verið betri/hraðvirkari en þessi lausn sem baddeh bjó til, en það er fjöldi og tegund aðgerða sem skiptir mestu máli, ekki fjöldi lína.
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 16:09
af stuxnet
baddeh, þú átt einkaskilaboð með MSN netfangi mínu ef þig vantar aðstoð (í þau skipti sem ég hef tíma). Skal reyna að útskýra fyrir þér hluti á sem einfaldastan hátt, gefið að ég skilji það sjálfur.
Daz skrifaði:Ef þú vildir sýna honum hvernig á að kalla á föll þá gastu bara gert
Og þetta var ekki "obfuscated" þetta var bara illa uppsett nested if. En ég er ekki beint að setja út á kóðann hjá þér, datt bara í hug að einhver gæti ruglast og haldið að einnar línu lausn gæti verið betri/hraðvirkari en þessi lausn sem baddeh bjó til, en það er fjöldi og tegund aðgerða sem skiptir mestu máli, ekki fjöldi lína.
Daz: Þetta er alveg hárrétt hjá þér, þetta er mjög slæmt dæmi um hvenær á að nota ternary operatorinn, uppsetningin á forritinu er það sem ég vildi koma til skila, og gefa honum smá template til að vinna með og skilja. Það á alltaf að hafa læsileikann í fyrirrúmi þegar verið er að forrita þar sem að compilerinn myndi líklegast sjá við manni og outputta sama kóða í lokinn fyrir mismunandi útfærslur af
if(og margt annað) ef það er notað til að reikna út sama hlutinn.
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 17:06
af Daz
Yay, ég hafði mögulega ekki fullkomlega rangt fyrir mér
Annars held ég að það sé fínt að hafa svona umræður fyrir opnum tjöldum, það auðveldar þeim sem eru að leita sér hjálpar að finna hana. Að því gefnu að einhver sé tilbúinn að spyrja spurninga sem öðrum gæti þótt "augljósar".
Re: Hjálp í forritun!!!
Sent: Lau 08. Okt 2011 18:49
af intenz
Java + IntelliJ er æði.
Ef þú ert með IntelliJ mæli ég með því að nota sout<tab> og psvm<tab> ... sparar manni mikil skrif.
Re: Hjálp í forritun!!!
Sent: Mán 10. Okt 2011 11:36
af baddeh
Takk fyrir hjálpin! Ég er búinn með 1-3 með ykkar hjálp
Ef einhver hefur einhver tips um nr. 4 þá eru þau vel þegin
Re: Hjálp í forritun!!!
Sent: Mán 10. Okt 2011 19:58
af appel
IntelliJ er sorp, hægvirkt og ljótt.
Notaðu Eclipse væni, og vendu þig á það.
Re: Hjálp í forritun!!!
Sent: Mán 10. Okt 2011 20:32
af Daz
appel skrifaði:IntelliJ er sorp, hægvirkt og ljótt.
Notaðu Eclipse væni, og vendu þig á það.
úff ef eitthvað er hægvirkt...
En það er hægt að customiza það upp og niður aftur, sem getur stundum verið galli, ég hef of oft gefist upp og sett Eclipse upp upp á nýtt og reynt að fara rólega í addons.
Re: Hjálp í forritun!!!
Sent: Mán 10. Okt 2011 21:50
af axyne
Daz og appel,
Hver er skoðun ykkar á NetBeans samanborið við t.d Eclipse ?
Re: Hjálp í forritun!!!
Sent: Þri 11. Okt 2011 08:51
af Daz
Hef ekki notað það, hef sett það upp og búið til hello world, en ekki meira. Hef raunar enga gríðarlega reynslu af IntelliJ heldur, en ég hef þó "unnið" á því í gegnum eitt trial period.
Re: Hjálp í forritun!!!
Sent: Þri 11. Okt 2011 14:26
af appel
Netbeans er í lagi svosem.