Ovanstående
bild säger verkligen vad det här med underprogram eller
moduler innebär.
Antag
att vi har ett stort problem som behöver lösas.
Vi
börjar med att dela upp det stora problemet i mindre, lätthanterliga,
delproblem.
Varje
delproblem löses av ett underprogram/modul.
Slutligen
kombinerar vi ihop underprogrammen/modulerna i ett sk huvudprogram.
Huvudprogrammet utför i princip ingenting annat än att
anropa underprogrammen.
Problemet
löst.
Det
här sättet att programmera på kallas stegvis förfining
eller Top-Down programmering.
Några
fördelar med att använda underprogram:
Det
är enklare att få överblick över programmet.
Man
kan koncentrera sig på att skriva ett underprogram färdigt.
Eftersom ett underprogram löser ett enklare problem har man
som programmerare inte så hemsk mycket att hålla reda
på och kan därför enklare skriva koden.
Ofta
förekommer samma sorts problem på flera ställen
i det stora problemet, man kan därför använda samma
underprogram på flera ställen i programmet.
I
arbetslivet är det vanligt att många programmerare
arbetar på samma projekt/uppgift/problem. Då delar
man upp projektet i mindre delar där en programmerare svarar
för en del av projektet. Alla programmerare gör då
underprogram och när man sedan sätter ihop dem får
man ett program som löser projekt.
Vad
skulle nu ett underprogram t ex kunna utföra?
Säg att vi har ett problem där vi behöver indata
från användaren, bearbetning av indatan samt slutligen
utskrift/presentation av resultatet.
Då skulle man t ex dela upp problemet i tre underprogram/moduler:
Ett
underprogram sköter inläsningen av indatat
Ett
underprogram sköter alla beräkningar.
Ett
underprogram sköter utskriften/presentationen av resultatet.
Skulle
ett delproblem kännas för avancerat kanske det går
att dela upp i än mindre delproblem. Dessa delproblem kanske
känns mer enkla att göra lösningar till än det
ursprungliga delproblemet.
Alltså,
blir ett delproblem för komplext och avancerat, försök
att dela upp det i än mindre delar!