Dacă problema a fost divizată in subprobleme, algoritmul, suplimentar la descrierea subalgoritmilor, stabileşte modul şi condiţiile de apel al acestora.
♦ Scrierea programului.
Pentru rezolvarea automatizată a problemei, cu ajutorul calculatorului
algoritmul trebuie transpus intr-o formă inţeleasă de calculator – program, folosind un limbaj de programare. Paşii algoritmului sint prezentaţi cu ajutorul instrucţiunilor limbajului de programare, iar ordinea executării lor – de consecutivitatea şi structura instrucţiunilor limbajului. Datele iniţiale şi intermediare sint descrise folosind
structurile de date, acceptate de limbajul de programare. In procesul
de scriere a programului pot să apară erori sintactice şi/sau semantice. Procesul de corectare a lor este de asemenea o parte a etapei de scriere a programului. Etapa se consideră incheiată atunci cind compilarea sau interpretarea programului finalizează fără erori.
♦ Testarea programului.
O compilare reuşită nu garantează rezolvarea corectă a problemei.
Pentru verificarea corectitudinii programului se execută o serie de teste care stabilesc corectitudinea rezultatelor generate de program in funcţie de seturi de date iniţiale simple, medii şi extreme. Dacă pentru toate testele efectuate programul prezintă rezultate corecte, se poate presupune că problema a fost rezolvată corect. Dacă in procesulde testare se obţin rezultate care diferă de cele corecte, urmează ca rezolvarea problemei să fie reluată, incepind cu etapa de analiză a problemei.
Procesul de rezolvare a unei probleme la calculator poate fi ilustrat cu ajutorul următoarei scheme: