/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Forståelses vanskeligheder ved brug af en ~
Fra : Jesper F. Jørgensen


Dato : 01-04-01 20:18

Jeg har svært ved at forstå præcist hvordan nedenstående program virker. Er
der nogle der kan hjælpe?

Jeg har skrevet nogle bemærkninger de steder hvor det driller.

//Filnavn = sekperdoegn.java
//Programmet beregner antallet af sekunder på et døgn.

public class sekperdoegn
{
public stativ void main(String args[])
{
int sek = 60;
int min = 60;
int timer = 24;
int sekunder = 0;
int h, i, j;

for (h = 0; h < timer; h = h + 1) //Her bliver h sat til at løve
fra 1 til 24
for (j = 0; j < min; j = j + 1) //Her bliver j sat til at
løbe fra 1 til 60
for (i = 0; i < sek; i = i + 1) //Her bliver i sat til at
løbe fra 1 til 60
sekunder = sekunder + 1; //Her adderes sekunder hele
tiden med 1
System.out.print("Antal sekunder på et døgn er: ");
System.out.println(sekunder);
}
}

Hvorfor ganges de sammen (Sekunder = sek * min * timer) og hvordan bliver de
ganget sammen? Jeg føler jeg har løsningen lige på tungen, men den vil ikke
komme ud. Er der en venlig sjæl (eller flere) der pædagogisk kan forklare
hvad der sker?

En opgave lyder at jeg så skal lave et program (hedder de applets?) der
laver det samme blot med en while-løkke og en do...while-løkke - er der
nogle der kan komme med små hints til hvordan dette gøres (det kan være jeg
selv indser det når jeg forstår ovenstående), men kom ikke med løsningen,
jeg vil gerne selv lege med det.

Venlig hilsen
Jesper

PS.
Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke et
smart program, således at man ikke skal sidde og tælle antal tryk på space
for at få { } osv. til at sidde lige under hinanden (det er nu pænest).




 
 
Henry Vest (01-04-2001)
Kommentar
Fra : Henry Vest


Dato : 01-04-01 20:31

Jesper F. Jørgensen skrev:

> Jeg har svært ved at forstå præcist hvordan nedenstående program
> virker. Er der nogle der kan hjælpe?

Generelt er dette nok for svært til at jeg rigtig kan være til nogen
hjælp, men måske kan jeg komme med et par hjælpende kommentarer.

> public stativ void main(String args[])

Der er vist ikke noget Java-ord der hedder stativ, prøv i stedet med
abstract eller protected.

> Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke et
> smart program, således at man ikke skal sidde og tælle antal tryk på space
> for at få { } osv. til at sidde lige under hinanden (det er nu pænest).

Jeg har hørt om et DOS-program der hedder edlin, prøv evt. med det.

Henry

Monica (01-04-2001)
Kommentar
Fra : Monica


Dato : 01-04-01 21:44



> > public stativ void main(String args[])
>
> Der er vist ikke noget Java-ord der hedder stativ, prøv i stedet med
> abstract eller protected.

Mon ikke der er tale om : static her...*smiler*

> > Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke et
> > smart program, således at man ikke skal sidde og tælle antal tryk på
space
> > for at få { } osv. til at sidde lige under hinanden (det er nu pænest).
>
> Jeg har hørt om et DOS-program der hedder edlin, prøv evt. med det.

Personligt bruger jeg kawa, og det kan klart anbefales....det er jo lidt
begrænset hvor mange compilere notepad har...*smiler*

/Monica.



Jan Uhre (01-04-2001)
Kommentar
Fra : Jan Uhre


Dato : 01-04-01 21:54


Monica <monica@mail.ikasths.dk> skrev i en
nyhedsmeddelelse:9a83ju$q4n$1@sunsite.dk...
>
>
> > > public stativ void main(String args[])
> >
> > Der er vist ikke noget Java-ord der hedder stativ, prøv i stedet med
> > abstract eller protected.
>
> Mon ikke der er tale om : static her...*smiler*
>
> > > Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke
et
> > > smart program, således at man ikke skal sidde og tælle antal tryk på
> space
> > > for at få { } osv. til at sidde lige under hinanden (det er nu
pænest).
> >
> > Jeg har hørt om et DOS-program der hedder edlin, prøv evt. med det.
>
> Personligt bruger jeg kawa, og det kan klart anbefales....det er jo lidt
> begrænset hvor mange compilere notepad har...*smiler*
>

Sandt nok... derfor bruger de fleste (læses alle *smiler*) som bruger
Notepad til udvikling nok også javac.exe til compilering.

Jan Uhre



Thorbjoern Ravn Ande~ (02-04-2001)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 02-04-01 16:24

On Sun, 1 Apr 2001, Jan Uhre wrote:

> Sandt nok... derfor bruger de fleste (læses alle *smiler*) som bruger
> Notepad til udvikling nok også javac.exe til compilering.

Eller "jikes" hvis man har en lille maskine. Så bliver man også hurtigere
færdig.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk


Henry Vest (01-04-2001)
Kommentar
Fra : Henry Vest


Dato : 01-04-01 21:55

Monica skrev:

> Mon ikke der er tale om : static her...*smiler*

Jo, mon ikke

Jeg var vist lidt i 1. april-humør da jeg skrev mit første indlæg. Nu
skal jeg prøve at komme med et par lidt mere seriøse kommentarer.

> Personligt bruger jeg kawa, og det kan klart anbefales....det er jo lidt
> begrænset hvor mange compilere notepad har...*smiler*

Ellers er der jo JedPlus og JCreator. De er vistnok begge to
freeware. Emacs er også sej til at lave lave indrykninger og
syntaksfarvning, og kan konfigures (via et "modul" der hedder JDE) så
man kan kompile og køre et program med et par tastetryk. Men det er
nok ikke lige alle der falder for emacs!

Henry

Monica (02-04-2001)
Kommentar
Fra : Monica


Dato : 02-04-01 00:18

> Monica skrev:
>
> > Mon ikke der er tale om : static her...*smiler*
>
> Jo, mon ikke
>
> Jeg var vist lidt i 1. april-humør da jeg skrev mit første indlæg. Nu
> skal jeg prøve at komme med et par lidt mere seriøse kommentarer.
>

1-april humør kan såmænd være glimrende...*SS*...men folk kunne jo få det
indtryk at du mente hvad du skrev....personligt har jeg fået MANGE svar hvor
folk svarer på noget, som de reelt ikke har ret meget forstand på.....så man
må vel være en smule selectiv.....ik...?

/Monica



Henry Vest (02-04-2001)
Kommentar
Fra : Henry Vest


Dato : 02-04-01 08:10

"Monica" <monica@mail.ikasths.dk> skrev:

>1-april humør kan såmænd være glimrende...*SS*...men folk kunne jo
>få det indtryk at du mente hvad du skrev....

Jeg lover at skamme mig dybt og inderligt, og aldrig skrive den slags indlæg
igen. I hvert fald ikke før 1. april 2002.

Henry

Bertel Lund Hansen (01-04-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-04-01 20:45

Jesper F. Jørgensen skrev:

>Jeg har svært ved at forstå præcist hvordan nedenstående program virker. Er
>der nogle der kan hjælpe?

Ja. Programmet er sammensat af 3 indlejrede løkker. I den
inderste tælles sekunderne 1 op. Det gøres 60 gange. Den næste
løkke tvinger den inderste til at køre 60 *gange* (der var den!)
Den yderste tvinger den næstyderste til at køre 24 *gange* (!)

>En opgave lyder at jeg så skal lave et program (hedder de applets?)

Nej, det er noget lidt andet.

>der laver det samme blot med en while-løkke og en do...while-løkke - er der
>nogle der kan komme med små hints til hvordan dette gøres

Her er tre løkker:

   for (n=0; n<10; ++n);

   n=0;
   while (n<10) ++n;

   n=0;
   do { ++n } while n<11;

De kører alle sammen 10 gange.

>Hvilket program programmerer I i?

Pascal, C og Java.

>Jeg bruger notepad

Åh, du mener hvilken editor vi bruger. Jeg bruger næsten Notepad,
men foretrækker EditPad som kan configureres lidt mere. Jeg
sætter tabulatoren til at springe 2 mellemrum. Mine medstuderende
benytter et andet program hvor de accepterer en indstilling med 8
mellemrum. Det svarer til hvad Notepad gør.

Det er en fordel at bruge tabulering frem for mellemrum - det
fylder mindre og følger læserens opsætning.

>smart program, således at man ikke skal sidde og tælle antal tryk på space
>for at få { } osv. til at sidde lige under hinanden (det er nu pænest).

Ikke alene pænest, men også mest overskueligt - hvis man ikke,
som jeg, bruger efterhængt startparentes:

   for (n=0; n<17; ++n) {
      System.out.println("Hip hip ...");
   }

Men slutparentesen skal sandelig flugte.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Theo Stidsen (02-04-2001)
Kommentar
Fra : Theo Stidsen


Dato : 02-04-01 08:14

> Det er en fordel at bruge tabulering frem for mellemrum - det
> fylder mindre og følger læserens opsætning.

I følge "Code Conventions for the Java(TM) Programming Language" laves
indrykning (indentering) med fire mellemrum. Dokument er udemærket hvis man
er i tvivl om hvordan man bør formaterer sin java kildekode.

For en god ordens skyld må jeg hellere tilføje at "Conventionen" er
vejledende og det står enhver frit for at gøre som man lyster.

Online version:
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Specielt om indent:
http://java.sun.com/docs/codeconv/html/CodeConventions.doc3.html#262

--
Med venlig hilsen
Theo Stidsen



Morten Primdahl (01-04-2001)
Kommentar
Fra : Morten Primdahl


Dato : 01-04-01 20:53

"Jesper F. Jørgensen" wrote:
> public stativ void main(String args[])

stativ -> static

> Hvorfor ganges de sammen (Sekunder = sek * min * timer) og hvordan bliver de
> ganget sammen? Jeg føler jeg har løsningen lige på tungen, men den vil ikke
> komme ud. Er der en venlig sjæl (eller flere) der pædagogisk kan forklare
> hvad der sker?

Man kan vel sige at de kun ganges sammen implicit, i funktion af
løkkerne. Den første løkke kører 24 gange, den under den kører 60
gange for hver af de 24 => 24*60 = 1440. Den inderste løkke køres
altså 60 gange for hver af de 1440, i alt lægger du således 1 til
24*60*60 = 86400 gange.

Eksempel

System.out.println("i j");
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
System.out.println(i+" "+j);
}
}

Udskriver

i j
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2

I alt 9 linier. Igen køres en indre løkke X antal gange for hver
iteration i den ydre løkke.

> En opgave lyder at jeg så skal lave et program (hedder de applets?) der
> laver det samme blot med en while-løkke og en do...while-løkke - er der
> nogle der kan komme med små hints til hvordan dette gøres (det kan være jeg
> selv indser det når jeg forstår ovenstående), men kom ikke med løsningen,
> jeg vil gerne selv lege med det.

Man kan omskrive den ene slags løkke til den anden (while) slags. Fex.
er ovestående eksempel det samme som

System.out.println("i j");

int i = 0;
int j = 0;

do {
do {
System.out.println(i+" "+j);
j++;
}
while(j < 3);
i++;
j = 0;
}
while(i < 3);


> PS.
> Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke et
> smart program, således at man ikke skal sidde og tælle antal tryk på space
> for at få { } osv. til at sidde lige under hinanden (det er nu pænest).

Personligt foretrækker jeg emacs - det kan være lidt svært at komme i
gang
med, men er ret godt. Et nemmere alternativ er ultraedit
(www.ultraedit.com).

Mvh Morten

Jan Uhre (01-04-2001)
Kommentar
Fra : Jan Uhre


Dato : 01-04-01 21:50


Jesper F. Jørgensen <Fontain@email.dk> skrev i en
nyhedsmeddelelse:9a7uu7$1la7$1@news.cybercity.dk...
>
> Hvorfor ganges de sammen (Sekunder = sek * min * timer) og hvordan bliver
de
> ganget sammen? Jeg føler jeg har løsningen lige på tungen, men den vil
ikke
> komme ud. Er der en venlig sjæl (eller flere) der pædagogisk kan forklare
> hvad der sker?
>

Hej Jesper.

Ja, hvordan skal jeg forklare det. Efter at have programmeret længe, er
løkker nu så indlysende, at jeg næsten har glemt, hvor svært det kunne være
at forstå.

for (int i = 0; i < 10; i++) {
<dette sker 10 gange>
for (int j = 0; j < 10; j++) {
<dette sker 10 gange, for hver gang den ydre løkke køres 1 gang>
}
}

I denne løkke udføres den yderste løkke 10 gange, mens i tælles op fra 0 til
og med 9. Men for hver gang i udføres en gang, udføres den inderste løkke jo
10 gange. Dvs. at ved endt kørsel er den inderste løkke udført 100 gange -
eller 10 * 10 gange.

> En opgave lyder at jeg så skal lave et program (hedder de applets?) der
> laver det samme blot med en while-løkke og en do...while-løkke - er der
> nogle der kan komme med små hints til hvordan dette gøres (det kan være
jeg
> selv indser det når jeg forstår ovenstående), men kom ikke med løsningen,
> jeg vil gerne selv lege med det.
>

Jamen, det er også den bedste måde at lære det på. Så vil jeg prøve at nøjes
med at forklare dig teknikken i de 3 typer løkker. Jeg må lige sige, at i
det følgende udelader jeg det faktum, at der findes metoder til at bryde ud
af løkker, der endnu ikke er fuldført.

FOR:
for (int i = START; i < SLUT; i++) {
}
Denne løkke udføres *altid* SLUT - START antal gange. Er SLUT - START <= 0
køres løkken aldrig. For-løkken bruges derfor typisk til de opgaver, hvor
man på forhånd kender antallet af kørsler (samt skal bruge støt
stigende/faldende værdier i løkken).

WHILE:
while (UDTRYK) {
}
UDTRYK er et boolsk udtryk - f.eks. (tal < 10) - dvs. et hvor man kan svare
sandt eller falsk. Denne løkke udføres indtil UDTRYK er falsk. Det betyder
følgende:
- løkken bliver måske aldrig kørt (hvis UDTRYK allerede er falsk.
- i løkken skal der ske noget, der på et eller andet tidspunkt vil gøre
UDTRYK til et falsk udsagn. Ellers kører den for evigt.

DO:
do {
} while (UDTRYK)
do-while løkken er nøjagtig som while-løkken, bortset fra, at UDTRYK først
testes efter kørsel af løkken. Dvs. at en do-while løkke *altid* køres
mindst 1 gang.

> PS.
> Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke et
> smart program, således at man ikke skal sidde og tælle antal tryk på space
> for at få { } osv. til at sidde lige under hinanden (det er nu pænest).
>

Du mener altså hvilken editor, vi programmerer i!

Jeg har i længere tid brugt Notepad, men jeg savnede nogle bedre
facilliteter rettet mod programmering - som f.eks. automatisk indrykning af
{ og }. Bedre debugging-tools mm.

En her fra gruppen pegede på et produkt fra Sun, som hedder Forte. Det er et
grafisk udviklingsmiljø, som foretager automatisk indrykninger efter bedste
evne, med gode debugging-tools, og bedst af alt... det er fuldstændig gratis
(for privatpersoner). Det kan downloades her:
http://jsecom11b.sun.com/servlet/EComActionServlet?StoreId=8&PartDetailId=Fo
rteFJCE-2.0-All-G-F&TransactionId=Try&LMLoadBalanced=&LMLoadBalanced=

Jeg er allerede blevet utroligt glad for dette værktøj, men det skal lige
siges, at selv om der er delte meninger om dette, så mener jeg, at det er en
god ide at starte med et simpelt værktøj - som f.eks. Notepad. Der er
rigeligt til at forvirre dig i starten.

Med venlig hilsen
Jan Uhre



Anders Bo Rasmussen (02-04-2001)
Kommentar
Fra : Anders Bo Rasmussen


Dato : 02-04-01 16:41

On Sun, 1 Apr 2001 21:18:14 +0200, Jesper F. Jørgensen <Fontain@email.dk> wrote:

>PS.
>Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke et
>smart program, således at man ikke skal sidde og tælle antal tryk på space
>for at få { } osv. til at sidde lige under hinanden (det er nu pænest).

vim - lidt langhåret men rigtig godt, når man har sat sig ind i det.

jerry (22-04-2001)
Kommentar
Fra : jerry


Dato : 22-04-01 20:04

Jeg har ikke tid til at se på dit problem p.t da jeg er modbydelig ophængt,
men jeg kan råde dig til at downloade Ultraedit, det er den editor som
bruges på datamatikkeruddannelsen i lyngby: (www.ultraedit.com)
"Jesper F. Jørgensen" <Fontain@email.dk> skrev i en meddelelse
news:9a7uu7$1la7$1@news.cybercity.dk...
> Jeg har svært ved at forstå præcist hvordan nedenstående program virker.
Er
> der nogle der kan hjælpe?
>
> Jeg har skrevet nogle bemærkninger de steder hvor det driller.
>
> //Filnavn = sekperdoegn.java
> //Programmet beregner antallet af sekunder på et døgn.
>
> public class sekperdoegn
> {
> public stativ void main(String args[])
> {
> int sek = 60;
> int min = 60;
> int timer = 24;
> int sekunder = 0;
> int h, i, j;
>
> for (h = 0; h < timer; h = h + 1) //Her bliver h sat til at
løve
> fra 1 til 24
> for (j = 0; j < min; j = j + 1) //Her bliver j sat til at
> løbe fra 1 til 60
> for (i = 0; i < sek; i = i + 1) //Her bliver i sat til
at
> løbe fra 1 til 60
> sekunder = sekunder + 1; //Her adderes sekunder hele
> tiden med 1
> System.out.print("Antal sekunder på et døgn er: ");
> System.out.println(sekunder);
> }
> }
>
> Hvorfor ganges de sammen (Sekunder = sek * min * timer) og hvordan bliver
de
> ganget sammen? Jeg føler jeg har løsningen lige på tungen, men den vil
ikke
> komme ud. Er der en venlig sjæl (eller flere) der pædagogisk kan forklare
> hvad der sker?
>
> En opgave lyder at jeg så skal lave et program (hedder de applets?) der
> laver det samme blot med en while-løkke og en do...while-løkke - er der
> nogle der kan komme med små hints til hvordan dette gøres (det kan være
jeg
> selv indser det når jeg forstår ovenstående), men kom ikke med løsningen,
> jeg vil gerne selv lege med det.
>
> Venlig hilsen
> Jesper
>
> PS.
> Hvilket program programmerer I i? Jeg bruger notepad, men er der ikke et
> smart program, således at man ikke skal sidde og tælle antal tryk på space
> for at få { } osv. til at sidde lige under hinanden (det er nu pænest).
>
>
>



Jacob Bunk Nielsen (22-04-2001)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 22-04-01 12:51

"jerry" <jerry@kollegiet.lyngbyes> writes:

> Jeg har ikke tid til at se på dit problem p.t da jeg er modbydelig ophængt,

Hvorfor svarer du så?

> men jeg kan råde dig til at downloade Ultraedit, det er den editor som
> bruges på datamatikkeruddannelsen i lyngby: (www.ultraedit.com)

Bvadr er min kommentar til den editor!
Jeg har brugt den, men bryder mig ikke om den, så det med editorer er vist
mere en individuel sag. Jeg mindes også lange diskussioner om hvad den
bedste editor er ovre i dk.edb.system.unix (der har sikkert været lignende
i Windows-grupperne(?), men dem følger jeg ikke).
Hvis du har lyst kan du jo kigge over på den anden side af vejen til DTU,
så skal jeg gerne demonstrere Emacs, som er min foretrukne editor, for dig


I øvrigt ville det være et hit, hvis du læste
<URL: http://www.usenet.dk/netikette/quote.html>, da det så ville være
meget lettere at se hvad du svarer på.

--
Jacob
Given a conflict, Murphy's law supercedes Newton's.

Niels Ull Harremoës (26-04-2001)
Kommentar
Fra : Niels Ull Harremoës


Dato : 26-04-01 20:28


"Jacob Bunk Nielsen" <spam@bunk.cc> skrev i en meddelelse
news:m3d7a5p2z6.fsf@paven.bunk.cc...
> "jerry" <jerry@kollegiet.lyngbyes> writes:
>
> > Jeg har ikke tid til at se på dit problem p.t da jeg er modbydelig
ophængt,
>
> Hvorfor svarer du så?

Jerry burde nok have gjort det mere klart at han ikke så på java-problemet,
men kun svarede på PS'et, hvor Jesper faktisk efterlyste en java editor -
men bortset fra det gav han da et udmærket svar? (omend jeg muligvis ikke
enig i hans anbefaling).

Er der nogle der ved hvor man finder nogen gode java-editeringsmakroer til
WordPerfect 5.1 ?



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste