Forrige tråd
Neste tråd
Print tråd

Java programering

Java programering #1909663 09/01/2015 15:01
Registrert: Apr 2004
Innlegg: 655
Morteen Offline OP
Avhengig
OP Offline
Avhengig
Registrert: Apr 2004
Innlegg: 655
Hei jeg skal lage et program som :
"Skriver ut dine egne initialer i konsollet i form av store digitaliserte bokstaver":
Har dere noen tips om hvor jeg kan finne en fremgangsmåte. Altså lage bokstaven M med f.eks. tegnet *


Re: Java programering [Re: Morteen] #1909673 09/01/2015 15:21
Registrert: Mar 2007
Innlegg: 2,879
mogens Offline
Besatt
Offline
Besatt
Registrert: Mar 2007
Innlegg: 2,879
I sin enkleste form:

Finn frem et ruteark (papir) og tegn opp med blyant hvordan det skal se ut. Så er det bare å å skrive ut én og én string som tilsvarer en linje i rutearket. Banalt, men om det er alt programmet skal gjøre så er det ingen grunn til å gjøre det mer komplisert.

Re: Java programering [Re: Morteen] #1909688 09/01/2015 15:47
Registrert: Apr 2004
Innlegg: 655
Morteen Offline OP
Avhengig
OP Offline
Avhengig
Registrert: Apr 2004
Innlegg: 655
Ja sef. Jeg så for meg at den skriver ut en innlest bokstav.


Re: Java programering [Re: Morteen] #1909712 09/01/2015 16:40
Registrert: Mar 2007
Innlegg: 2,879
mogens Offline
Besatt
Offline
Besatt
Registrert: Mar 2007
Innlegg: 2,879
Hvis det er alt programmet skal gjøre, er det ingen grunn til å gjøre det vanskeligere.
Skal du lage en mer generisk løsning som håndterer brukerinput, kan du jo representere hver bokstav i en todimensjonal matrise som tilsvarer rutenettet visuelt med hhv ' ' og '*'. (den kan like godt være en en-dimensjonal array, men litt enklere å tenke visuelt med to dimensjoner).

Da kan du plukke de bokstav-matrisene du trenger og skrive dem ut via en nøstet loop.

i pseudokode

for LineNo=1 to antall linjer
for each Bokstav {
for CharNo = 1 to Bokstav.Width {
print Bokstav(LineNo, CharNo)
}
print ' ' // space før neste bokstav
}

Edit: indenteringen forsvant i visningen.

(jeg husker ikke i farten om arrays i Java er 1-bound eller 0-bound, men det er mindre vesentlig)

Redigert av mogens; 09/01/2015 16:43.
Re: Java programering [Re: mogens] #1909717 09/01/2015 17:02
Registrert: Oct 2009
Innlegg: 3,567
femte_gir Offline
Besatt
Offline
Besatt
Registrert: Oct 2009
Innlegg: 3,567
Sitat: mogens
Hvis det er alt programmet skal gjøre, er det ingen grunn til å gjøre det vanskeligere.
Skal du lage en mer generisk løsning som håndterer brukerinput, kan du jo representere hver bokstav i en todimensjonal matrise som tilsvarer rutenettet visuelt med hhv ' ' og '*'. (den kan like godt være en en-dimensjonal array, men litt enklere å tenke visuelt med to dimensjoner).

Da kan du plukke de bokstav-matrisene du trenger og skrive dem ut via en nøstet loop.


Eller, at hver bokstav tilsvarer en funksjon (med løkke i) som skriver ut bokstaven. Tror det er dette oppgaven går ut på. Men siden dette er mye arbeid så holder det med kun egne initialer, altså 2-3 funksjoner.

Re: Java programering [Re: Morteen] #1909723 09/01/2015 17:14
Registrert: Jun 2008
Innlegg: 387
T
TEK Offline
Entusiast
Offline
Entusiast
T
Registrert: Jun 2008
Innlegg: 387
Hmm...

void PrintBokstav(console out, char c, Font f){
// finn et grafisk objekt
// finn ut pixslene som bokstaven bygges opp av
// konverter posisjonen for pixslene til et rutenett
// skriv ut * på hver posisjon i rutenettet med en pixel
}

Mye mer jobb, og et par små detaljer og finne ut av, men mye mer moro da ;-)


Scott Spark RC 2011
Hard Rocx Equilibrium Cambrium Discimus 2007
Re: Java programering [Re: femte_gir] #1909730 09/01/2015 17:19
Registrert: Mar 2007
Innlegg: 2,879
mogens Offline
Besatt
Offline
Besatt
Registrert: Mar 2007
Innlegg: 2,879
Men gitt at bokstavene skal skrives ut på linje, f.eks. ABC, og det skal skje til konsoll, så må man jo skrive ut én linje av hver bokstav om gangen. Om du har en funksjon for hver bokstav i sekvens, vil det jo måtte bli
A
B
C

Output til konsoll setter begrensningene.

Uansett er det et godt programmeringsprinsipp å ikke gjøre koden mer kompleks og generisk enn det som er nødvendig for å løse oppgaven.

Re: Java programering [Re: TEK] #1909734 09/01/2015 17:22
Registrert: Mar 2007
Innlegg: 2,879
mogens Offline
Besatt
Offline
Besatt
Registrert: Mar 2007
Innlegg: 2,879
Sitat: TEK
Hmm...

void PrintBokstav(console out, char c, Font f){
// finn et grafisk objekt
// finn ut pixslene som bokstaven bygges opp av
// konverter posisjonen for pixslene til et rutenett
// skriv ut * på hver posisjon i rutenettet med en pixel
}

Mye mer jobb, og et par små detaljer og finne ut av, men mye mer moro da ;-)


Jeg tenker på konsoll som standard tekst output som skrives en linje om gangen, om det er en grafisk presentasjon på pixelnivå blir det jo straks noe annet...

Re: Java programering [Re: Morteen] #1909739 09/01/2015 17:33
Registrert: Jun 2008
Innlegg: 387
T
TEK Offline
Entusiast
Offline
Entusiast
T
Registrert: Jun 2008
Innlegg: 387
Du leser pikslene fra fontem også skriver du dem ut i konsollet.
Burde skrevet en bedre pseudekode, men da må,jeg ha et skikkelig tastatur først - gidder ikke fra pad'en.
I forhold til oppgaven er det sikkert way overkill.

Er egentlig samme som du beskrev, bare at istedenfor å manuelt lage en todimensjonal matrise for hver bokstav leser man det ut fra fonten.


Scott Spark RC 2011
Hard Rocx Equilibrium Cambrium Discimus 2007
Re: Java programering [Re: TEK] #1909741 09/01/2015 17:40
Registrert: Mar 2007
Innlegg: 2,879
mogens Offline
Besatt
Offline
Besatt
Registrert: Mar 2007
Innlegg: 2,879
Ah, sånn ja.


Moderator  support