Мысал 1 .Белгілі бір шарт арқылы берілген қадаммен функция мәнін есептеу керек
Алгоритмін сөз түріндегі әдіспен жазамыз.
1. Деректерді енгізу.
2. Аргументтің бірінші мәнін бер.
3. Оның қандай интервалға жататынын анықта.
4. Сәйкес формуламен функция мәнін есепте.
5. Кесте жолын шығар.
6. Келесі аргумент мәніне көш.
7. Егер ол соңғы мәннен үлкен болмаса, 3–6 қадамдарын қайтала, әйтпесе аяқта.
3–6 қадамдары бірнеше рет орындалады, сондықтан оны цикл арқылы орындаймыз. Қажет айнымалылар үшін белгілеулер енгіземіз: аргументтің бастапқы мәні — Xn, соңғы мәні — Xk, аргументтің өзгеру қадамы — dX, параметр — t. Барлығы нақты. Программасы:
program tabl_fun;var Xn, Xk: real; { аргументтің алғашқы және соңғы мәні } dX: real; { қадам } x, y: real; { аргумент пен функцияның кезекті мәні} t : real; { параметр }begin writeln('Енгізу Xn, Xk, dX, t'); {мәндерді енгізуді шақыру } readln(Xn, Xk, dX, t); { деректерді енгізу – 1 қадам } writeln(' --------------------------- '); { кесте аты } writeln('| X | Y |'); writeln(' --------------------------- '); x := Xn; { бірінші мәні Xn – 2 қадам } while x <= Xk do begin {цикл тақырыбы – 7 қадам } if x < 0 then y := t; {функция мәнін есептеу - 4 қадам } if (x >= 0) and (x < 10) then y := t * x; { 4 қадам } if x >= 10 then y := 2 * t; { 4 қадам } writeln('|', x:9:2,' |', y:9:2,' |');{кесте мәнін шығару – 5 қадам } x := x + dX; { келесі мәнге көшу - 6 қадам } end; writeln(' --------------------------- ');end.
Функцияның кестелік мәні (while операторы)
Бұл циклдің параметрі орындалуын басқаратын айнымалы, яғни х. Циклдің дұрыс жұмыс істеуі үшін параметрдің бастапқы мәнін циклге кірмей тұрып беру керек (2 қадам). Келесі қадамдарда аргументке қадам мәндері қосылып орындалып отырады.
Цикл repeat(репит) соңынан қойылатын шарт
Цикла негізі қызметші сөздер repeat және until арасына орналасады.
Форматы:repeat цикл денесіuntil өрнек
Бұның while циклынан айырмасы, until сөзінен кейінгі логикалық мәні өтірік болғанш орындала береді.
Мысал 2. Нақты мән х аргументі бойыншаepsдәлдігімен түбірді табу программасын құұ. Берілген формула:
мұндағы y(n–1) — түбірдің алғашқы жуықтауы (басында кез келген мән алынады), y(n) — келесі жуықтаулар. Есептеу процессі берілген eps — дәлдікке дейін есептелінеді.
program square_root;var X, eps, { аргумент және дәлдік} Yp, Y: real; { алғашқы және келесі жуықтаулар}begin repeat writeln('Аргументті және дәлдікті енгіз (нөльден үлкен): '); readln(X, eps); until (X > 0) and (eps > 0); Y := 1; repeat Yp:= Y; Y:= (Yp + X / Yp) / 2; until abs(Y - Yp) < eps; writeln('Түбір ', X:6:3, 'дәлдікпен ', eps:7:5, 'тең ', Y:9:5);end.