6236 Programmering I Agenda/Functioner

From Teknologisk videncenter
< 6236 Programmering I Agenda
Revision as of 10:35, 26 November 2015 by Orso (talk | contribs) (Created page with "Herunder er vist et eksempel på en lille konto applikation. <source lang=Csharp> static void Main(string[] args) { Double saldo = 25000; Double beloeb; Double rente; Int32 ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

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 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.

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.