C programmering for nybegyndere

Funktioner

Du vil lære at lave funktioner, funktioner er underrutiner (eng. subrutine).

Med funktioner kan du lave programstumper og anvende dem fra et andet sted i programmet. Årsagen til vi anvender funktioner er flere, en af dem er at genbruge og undgå at kode trivialiteter igen og igen, se følgende eksempel uden funktioner med trivialiteterne i.

/* moms.c - beregn moms af et beløb */ #include <stdio.h> main() { double beloeb; beloeb=100.00; printf("Momsen af %10.2f er %10.2f\n",beloeb,beloeb*0.25); beloeb=200.00; printf("Momsen af %10.2f er %10.2f\n",beloeb,beloeb*0.25); beloeb=500.00; printf("Momsen af %10.2f er %10.2f\n",beloeb,beloeb*0.25); }
moms.c
  • Compilér og kør programmet
# gcc moms.c
# ./a.out
Momsen af 100.00 er 25.00
Momsen af 200.00 er 50.00
Momsen af 500.00 er 125.00
#

og dette omskrevne program der udfører nøjagtig den samme opgave men hvor en funktion anvendes.

/* moms2.c - beregn moms af et beløb */ #include <stdio.h> void beregn_og_udskriv(double indbeloeb) { printf("Momsen af %10.2f er %10.2f\n",indbeloeb,indbeloeb*0.25); } main() { beregn_og_udskriv(100.00); beregn_og_udskriv(200.00); beregn_og_udskriv(500.00); }
moms2.c
  • Compilér og kør programmet
# gcc moms2.c
# ./a.out
Momsen af 100.00 er 25.00
Momsen af 200.00 er 50.00
Momsen af 500.00 er 125.00
#

Jeg håber du ser ideen, med funktioner. main bliver mindre og mere overskuelig. Der er fordele ved at vedligeholde et sådant design, hvis momssatsen ændres er der kun ét sted i programmet der skal ændres. En anden grund er at koden bliver mere overskuelig, du bør bryde koden ned i flere funktioner hvis en kodeblok fylder mere end en A4 side (ca. 60 linier).

Hvis en funktion ikke skal returnere værdier, som i eksemplet med momsudregningen bruges typen void, der betyder tom eller intet.

Syntaksen for at definere funktioner er:

type funktionsnavn([parameter[[,parameter]..]])
{
    sætninger...
}

 

Definitioner til syntaks
type erklæring af return datatypen kan være en af de simple datatyper og kun én.
funktionsnavn du bestemmer selv navnet indenfor rammer af legale identifiers
parameter overførsel af værdier og variabler. Parameter kaldes på engelsk argument.

Syntaksen for at definere funktioner siger at der først skal erklæres en type, den definerer returværdien for funktionen. Returnværdien fra en funktion kan kun være simple typer som (char, int, double, void) plus nogle tillæg til disse typer. Returværdien bruges f.eks. i en tildeling til en variabel.

Efter type skal erklæres et funktionsnavn. det er op til dig at finde et navn der er passende for dig. Tegnsættet der kan anvendes ligger indenfor A-Z, a-z, 0-9 og _ (underscore) og det første tegn må ikke være et tal.

Parameter er en værdi som overføres til funktionen og erklæres som type variabelnavn, typen er her samme slags simple type, men også sammensatte typer kan anvendes.

 

#include <stdio.h> int multiplicer_med_5(int tal) { return 5*tal; } main() { int resultat; resultat = multiplicer_med_5(8); printf("resultat af 8*5 er %d\n",resultat); }

 

 

 

Ressourcer C Library opslag The Single UNIX® Specification, Version 2 Copyright © 1997 The Open Group GNU C Library Engelsk, med masser af gode og dybe artikler. Danske søgeord Find selv de bedste danske søgeord til din hjemmeside.
Produkter Bookingsystem
System for reservation af tid for behandlinger, aftaler, lokaler, udstyr, personale. Tilpasset lektionstimer. Udskriver arbejdsplaner og ugeskema for opslag. Statistik. Danmarks bedste pris nu kun kr. 1.695,-
HelpdeskEffektiviser din support-organisation med et Helpdesksystem. Fjern tidrøvere der forhindrer fokus på problemløsning. Lektionsplan Formidling af generelle information og specifikke lektioner fra undervisere til studerende/elever. Medlemssystem Medlemssystem online med administration af medlemskartotek, kontingentbetalinger, flettefiler m.m.
Styr selv Styr selv indholdet på dine hjemmesider med Content Management System.
Citat Det er ikke fordi ting er vanskelige, vi ikke tør. Det er fordi, vi ikke tør, ting er vanskelige.

Seneca



Professionelle løsninger til Internettet. Webdesign, e-handel, cms, søgeoptimering, webhotel, analyse, Intranet mm.