Programavimo kultūros elementai

Programavimo kultūros elementai
Algoritmas rašomas ne tik kompiuteriui. Svarbiausias algoritmų skaitytojas yra žmogus. Skaitytojas turi greitai ir lengvai suvokti algoritmą, todėl rašantieji turi gerai apgalvoti algoritmavimo stilių, parinkti prasmingus vardus, vaizdžiai išdėstyti tekstą, pateikti sudėtingesnių veiksmų komentarus.
Uždavinio sprendimo užrašymas, stengiantis jį išreikšti kuo aiškiau ir vaizdžiau, vadinamas algoritmavimo stiliumi.
Algoritmavimo stilius gali būti tobulinamas dviem būdais:
1. Skaitant bei nagrinėjant kitų parašytus gerus algoritmus;
2. Pačiam sudarant kuo daugiau algoritmų.
Algoritmavimo kultūra suprantama kiek plačiau: ji aprėpia ne tik algoritmavimo stilių, bet ir algoritmo teksto išdėstymą, komentarų raašymą.
Štai keletas patarimų, kaip pagerinti algoritmavimo kultūrą:
• Algoritmas turi gerai tikti duotam uždaviniui spręsti: tinkamai parinkti duomenų tipus bei valdymo struktūras.
• Algoritmas turi būti vaizdus, lakoniškas, veiksmai turi logiškai sekti vienas po kito. Neturi būti nereikalingų, perteklinių veiksmų.
• Algoritmas turi būti racionalus, t.y. trumpiausiu keliu sprendžiantis duotą uždavinį.
• Algoritmas turi būti ekonomiškas, t.y. taupantis kompiuterio laiką bei atminties vietą duomenims saugoti.
• Visi algoritme vartojami vardai turėtų būti prasmingi, raiškiai nusakantys jais reiškiamus objektus. Pageidautina aprašant vardus juos iš anksto komentuoti.
• Algoritmas turi būti vaizdžiai pateiktas irr lengvai suvokiamas.
• Sudėtingas algoritmo vietas reikia komentuoti.

Algoritmo teksto išdėstymas
Algoritmo tekstą reikia išdėstyti kuo vaizdžiau. Yra keletas bendrų taisyklių, nusakančių, kaip pateikti algoritmo tekstą. Jų esmė – algoritmo eilučių lygiavimas ir patraukimas per keletą simbolių į dešinę ar kaitę priklausomai nuo teksto prasmės.
program .

. . .

var . . .

. . .
begin

read . . .

if . . .

then . . .

else . . .

while . . . do

begin

. . .

end

for . . . to . . . do

begin

. . .

end

writeln . . .
end.

Suformuluosime keletą algoritmo rašymo taisyklių.
Kiekvienas sakinys turi būti rašomas iš naujos eilutės, pavyzdžiui:
k := a + b + c;
kkk := a * a + b * b – c
Išimtis gali būti nebent tuomet, kai sakiniai labai trumpi ir logiškai susiję. Pavyzdžiui, kai kintamiesiems reikia priskirti pradines reikšmes:
s1 := 0; s2 := 0; s3 := 0
To paties lygio sakiniai, esantys skirtingose eilutėse, turi būti sulygiuoti vertikaliai, pavyzdžiui:
kv := a * a;
kub := a * a * a;
sum := kv * kv + kub * kub
Sakinius, esančius kitame, sudėtingesniame, sakinyje, reikia patraukti į dešinę per keletą pozicijų, pavyzdžiui per tris:
s := 0;
while a > 10 do

while b > 10 do

s := s + 1;
rezultatas := s * s
Šiame pavyzdyje antrasis ciklas yra pirmajame. Todėl jis patrauktas į dešinę per tris pozicijas. Sakinys s := s + 1 dar patrauktas į dešinę antrojo ciklo antraštės atžvilgiu. Paskutinis priskyrimo sakinys yrra to paties lygio kaip ir išorinis ciklas, todėl jis lygiuojamas su šio ciklo pradžia.
To paties sudėtinio sakinio ribas žyminčius žodžius begin ir end reikia lygiuoti vertikaliai, pavyzdžiui:
begin

pirm := x div 10;

pask := x mod 10
end
Sąlyginį sakinį patariama išdėstyti atsižvelgiant į tai, kokio ilgio ir sudėtingumo yra sąlyga bei sakiniai einantys po žodžių then ir else.
Štai keletas dažniau vartojamų sąlyginio sakinio išdėstymo schemų:
if . . . then . . .

else . . .

if . . .

then . . .

else . . .

if . . . then . . .

else if . . . then . . .

else . . .

Algoritmo komentavimas
Algoritmą skaityti daug lengviau, kai sudėtingesnės teksto vietos ai

iškinamos (užrašomi komentarai).
Keletas vietų, kur paprastai reikalingi komentarai:
Komentarai po algoritmo (programos) antraštės. Šitaip nusakoma, ką atlieka algoritmas. Kartais čia nurodomi ribojimai pradiniams duomenims ar algoritmo autoriaus pavardė, sudarymo laikas.
Komentarai kintamųjų aprašuose. Juose pateikiama informacija apie kintamuosius, jų paskirtį, pavyzdžiui:
var p, {pažymys}

suma, {pažymių suma}

n : integer; {pažymių skaičius}
Komentarai sąlyginiame sakinyje. Kad būtų lengviau suprasti, ką reiškia sudėtingesnė sąlyga, pageidautina rašyti komentarus. Pavyzdžiui:
if (a = b) and (b = c)

then { trikampis lygiakraštis}

. . .

else if (a = b) or (a = c) or (b = c)

then { trikampis lygiašonis}

. . .

else {trikampis įvairiakraštis}
Komentarai prieš ciklą.pageidautina prieš ciklo antraštę ar po jos užrašyti, ką šis ciklas atlieka, pavyzdžiui:
suma := 0;
while n > 0 do {skaičiaus n skaitmenų suma}

begin

suma := suma + n mod 10;

n := n div 10

end;
Komentarai turi būti trumpi, neužgožiantys algoritmo teksto, nusakantys tik esminius dalykus. Reikėtų pateikti ir trumpą uždavinio formuluotę.

Leave a Comment