Gå til innhold

Anbefalte innlegg

Hei,

 

Skal lage en enkel funksjon i VWD C#. Funksjonen skal konvertere tommer til centimerer ( 1 tomme = 2.54 cm)

 

 

Så lang har jeg:

 

    private float FraTommerTilCm(float tommer)
   {

   }


   protected void btnBeregn_Click(object sender, EventArgs e)
   {
       txtInput.Text = Convert.ToInt32(txtInput);
   }

 

Men trenger litt videre veiledning.

Lenke til kommentar
Videoannonse
Annonse

Hei,

 

Har en annen oppgave her nå. Skal lage en funksjon som finner ut hvilken ukedag en gitt dato i 2010 er.

 

Skjermbilde mitt består av to tekst felt, dato og nr på måneden. I tillegg en knapp og en label for utskriften.

 

Men sliter med å starte kodeningen.

 

 

Oppgave teksten;

 

Når du trykker knappen skal programmet kalle en funksjon med dato og månedsnr, og returnerer ukedagen.

 

Private function string ukedag(int dato, int mndNr)

 

Du må første regne deg fram til hvilket nr. dagen har i året, f.eks:

 

if (mndNr= =3)

{

dagnr = 31+28+dato)

}

 

Vi vet at 1. januar var en fredag og kan bruke modulus funksjonen til å finne ukedag ved å si:

 

if (dagnr % 7 = = 1) return ”fredag”;

if (dagnr % 7 = = 2) return ”lørdag”, osv.

 

Hva må jeg starte med etter:

 

Private function string ukedag(int dato, int mndNr)
{

}

 

Noen som kan gi litt starthjelp? :)

Lenke til kommentar

Både ja og nei. Har en kode som regner ut noe annet, men har en innebygd kalender:

 

 

 

clear

ukedag = 1-1;
ukedag = ukedag + 365;	%% pga 2001
ukedag = mod(ukedag, 7);  %% pga 2001
dagnr = 0;
teller = 0;
skudd = false;

for aar = 1901:2000

if mod(aar, 4) == 0
skudd = true;
	if mod(aar, 100) == 0
		if mod(aar, 400) != 0
			skudd = false;
		end
	end
else
skudd = false;
end


for maaned = 1:12

	if maaned == 1
		dager = 31;
	elseif maaned == 2
		if skudd == false
			dager = 28;
		else dager = 29;
		end
	elseif maaned == 3
		dager = 31;
	elseif maaned == 4
		dager = 30;
	elseif maaned == 5
		dager = 31;
	elseif maaned == 6
		dager = 30;
	elseif maaned == 7
		dager = 31;
	elseif maaned == 8
		dager = 31;
	elseif maaned == 9
		dager = 30;
	elseif maaned == 10
		dager = 31;
	elseif maaned == 11
		dager = 30;
	else dager = 31;
	end



	for dag = 1:dager
		dagnr = dagnr + 1;
		ukedag = ukedag + 1;
		if ukedag == 8
			ukedag = 1;
		end

		if (ukedag == 7 && dag == 1)
			teller = teller + 1;
		end

	end





end



end

teller

 

 

Er ikke i C#, men er veldig oversiktlig og kan nesten leses som pseudokode.

Endret av Senyor de la guerra
Lenke til kommentar

sågodt som nesten alt av kode du trenger står i teksten.

 

Du må begynne med funksjonen:

private string ukedag(int dato, int mndNr)

{

int antallDager = 0;

if (mndNr == 1)

antallDager = dato;

else if (mndNr == 2)

antallDager = 31 + dato;

 

if ((antallDager % 7) == 1)

return "fredag";

else if ((antallDager % 7) == 2)

return "lørdag";

}

 

o.s.v.

Lenke til kommentar

Det virker som oppgaven legger opp til hardkoding. Sånt liker vi dårlig men sjelden man slipper unna.

 

Har du lært om arrays? Du kan unngå myyyye hardkoding hvis du plasserer månedsverdiene og ukedagene i en array. Lag en løkke men ikke iterer lenger enn verdien i mndNr og pluss på dato antall dager i måneden. Så bruker du return for å hente ukedagen. Hele funksjonen kan skrives på 5 linjer.

Endret av Vial
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...