Difference between revisions of "6236 Programmering I Agenda/Functioner"

From Teknologisk videncenter
Jump to: navigation, search
(Opgave)
(Opgave)
Line 103: Line 103:
 
Start med at afprøve konto programmet uden metoder.
 
Start med at afprøve konto programmet uden metoder.
  
Indsæt derefter de viste metoder oplysSaldo og haev og lav de viste ændringer i swithcen så den benytter metoderne.
+
I koden herunder er lavet metoder oplysSaldo og haev, men der mangler indsæt og rente som også flyttes til metoder.
 
 
I koden herunder skal indsæt og rente også flyttes til metoder. Gør koden
 
  
 
Indsæt derefter de viste stykke kode fra eksemplerne saldo og haev og afprøv koden igen.
 
Indsæt derefter de viste stykke kode fra eksemplerne saldo og haev og afprøv koden igen.

Revision as of 11:41, 26 November 2015

Herunder er vist et eksempel på en lille konto applikation.

Programmet oprette en "konto" med saldoen 25000. Derefter er der mulighed for at hæve eller indsætte penge.

static void Main(string[] args)
{
	Double saldo = 25000;
	Double beloeb;
	Double rente;
	Int32 valg;

	do
	{
		System.Console.WriteLine("Hvad ønsker du at gøre?");

		System.Console.WriteLine("1. Oplys saldo");
		System.Console.WriteLine("2. Hæve penge");
		System.Console.WriteLine("3. Sætte penge ind");
		System.Console.WriteLine("4. Tilskriv renter");
		System.Console.WriteLine("0. Exit");
		valg = Convert.ToInt32(System.Console.ReadLine());
		switch (valg)
		{
			case 1:
				System.Console.WriteLine("Din saldo er " + saldo);
				break;
			case 2:
				System.Console.WriteLine("Hvor meget vil du hæve?");
				beloeb = Convert.ToDouble(System.Console.ReadLine());
				saldo = saldo - beloeb;
				break;
			case 3:
				System.Console.WriteLine("Hvor meget vil du sætte ind?");
				beloeb = Convert.ToDouble(System.Console.ReadLine());
				saldo = saldo + beloeb;
				break;
			case 4:
				System.Console.WriteLine("Hvad er renten?");
				rente = Convert.ToDouble(System.Console.ReadLine());
				saldo = saldo + saldo / 100 * rente;
				break;
			default:
				break;
		}
	} while (valg != 0);
	
	System.Console.ReadKey();
}

Methoder eller funktioner som de også kaldes kan bruges hvis der er noget kode vi ønsker at genbruge, eller blot fjerne fra vores Main for overskuelighedens skyld.

I eksemplet herunder har jeg lavet metoden oplysSaldo(). Metoden tager en parameter (en variable) som input af typen Double, og skriver dens indhold i consollen.

Den anden metode er haev() der også tager en parameter, men også returnerer en værdi der er den nye saldo.

namespace ConsoleApplication18
{
	class Program
	{
		//Metoden tager parameteren sal som input og skriver den i consollen
		//Der returneres ikke nogen værdi, derfor står der void der betyder tom.
		static void oplysSaldo(Double sal)
		{
			System.Console.WriteLine("Din saldo er " + sal);
		}

		//Denne metode tager også en input parameter af typen Double og trækker det beløb fra der skal hæves.
		//Metoden returnere den nye saldo som en Double, derfor står der Double inden metode navnet.
		static Double haev(Double sal)
		{
			System.Console.WriteLine("Hvor meget vil du hæve?");
			Double beloeb = Convert.ToDouble(System.Console.ReadLine());
			sal = sal - beloeb;
			//Returner den nye saldo
			return sal;
		}

		static void Main(string[] args)
		{
			Double saldo = 25000;
		....

Nede i vores switch kan vi nu fjerne den oprindelige kode under case 1 og case 2 og istedet kalde metoderne. På den måde bliver vores kode i main lettere at overskue.

	switch (valg)
	{
		case 1:
			oplysSaldo(saldo);
			break;
		case 2:
			saldo = haev(saldo);
			break;
		case 3:
		....

Opgave

Start med at afprøve konto programmet uden metoder.

I koden herunder er lavet metoder på oplysSaldo og haev, men der mangler indsæt og rente som også flyttes til metoder.

Indsæt derefter de viste stykke kode fra eksemplerne saldo og haev og afprøv koden igen.

Derefter kopierer du følgende kode og oprette metoderne indSaet og tilskrivRente.

<source lang=Csharp> namespace ConsoleApplication18 {

   class Program
   {
       
       static void oplysSaldo(Double sal)
       {
           System.Console.WriteLine("Din saldo er " + sal);
       }
       static Double haev(Double sal)
       {
           System.Console.WriteLine("Hvor meget vil du hæve?");
           Double beloeb = Convert.ToDouble(System.Console.ReadLine());
           sal = sal - beloeb;
           return sal;
       }
       static Double indSaet(Double sal)
       {
           //Din kode her....
       }


       static void Main(string[] args)
       {
           Double saldo = 25000;
           Double beloeb;
           Double rente;
           Int32 valg;


           do
           {
               System.Console.WriteLine("Hvad ønsker du at gøre?");
               System.Console.WriteLine("1. Oplys saldo");
               System.Console.WriteLine("2. Hæve penge");
               System.Console.WriteLine("3. Sætte penge ind");
               System.Console.WriteLine("4. Tilskriv renter");
               System.Console.WriteLine("0. Exit");
               valg = Convert.ToInt32(System.Console.ReadLine());
               switch (valg)
               {
                   case 1:
                       oplysSaldo(saldo);
                       break;
                   case 2:
                       saldo = haev(saldo);
                       break;
                   case 3:
                       saldo = indSaet(saldo);
                       break;
                   case 4:
                       saldo = tilskrivRente(saldo);
                       break;
                   default:
                       break;
               }
           } while (valg != 0);
           
           System.Console.ReadKey();
       }
   }

} <source>

Lav til sidst om i dit program så de første linier med menu valg også foregår via en metode der returnerer en Int32.