Procedure i funkcije su tipovi potprograma u programskom jeziku pascal. Sigurno se pitate što će nam potprogrami kad do sad već znamo razne petlje i možemo napisti program koji će računati sve što nam padne na pamet, ali tu se varate. Ako želimo napisati program koji će računati potenciju nekog broja to je vrlo lako učiniti pomoću funkcije.
Ako vam ovo nije najasnije zamislite da morate pisati program u kojem ćete nekoliko puta morati računati jednu te istu stvar, ali sa različitim brojevima. Onda biste morali svaki put kopirati taj dio koji će vam računati i mijenjati varijable. A ako vam se nakon godinu ili dvije dogodi da sve morate mijenjati onda biste u svakom tom odjeljku morali ispravljati pogreške, dok procedure i funkcije samo pozivamo na mjestima na kojima želimo i pogreške je potrebno mijenjati samo na jednom mjestu.