Приклад виконання лабораторної роботи № 2

ЛІСТИНГ ПРОГРАМИ Work2.pas

Program Work2;

{Варіант 30: a*b/4, якщо b > a

X = -55, якщо b = a

(b - 5)/a, якщо b < a

}

Uses CRT;

Const

inv1='Повторите введення';

inv2=' Ділення на нуль!!!!!!! ';

inv3='Результат ';

inv4='виходить за діапазон [-32768..32767]!!!!';

inv5=' значення, що вводиться, ';

invA='A';

invB='B';

Label L1;

Var

a,b,x: Integer;

ch: Char;

 

{Обчислення значення X з перевіркою на допустимий діапазон

для змінної типу INTEGER }

function F (a,b:Integer; Var x:Integer): Boolean;

Var x1: Real;

s1: String;

Begin

F:=True;

if b>a then x1:= b/4.0*a {Тільки так, інакше буде помилка обчислення!!!!}

else if b=a then x1:=-55

else if a=0 then

Begin

s1:=inv2+inv1;

Writeln(s1);

F:=False;

Exit;

End

else x1:=(b-5.0)/a;

{-і-і-і Перевірка результату на допустимий діапазон -і-і-і}

if (x1>=-32768)and(x1<=32767) then x:=trunc(x1)

else

Begin

s1:=inv3+inv4;

Writeln(s1);

Writeln(x1);

Writeln(inv1);

F:=False;

Exit;

End

End;


{Процедура введення вихідного значення змінної А з перевіркою на область

допустимих значень}

Procedure Input(Var A:integer; inv:String);

Label L;

Var aL:Real;

s1: String;

Begin

L:

Write('Введіть значення '+inv,'===>');

Readln(aL);

if (aL>=-32768)and(aL<=32767) then A:=trunc(aL)

else

Begin

s1:=inv5+inv4;

Writeln(s1);

Writeln(inv1);

goto L;

End

End;

 

{Головна програма}

Begin

Repeat

ClrScr;

Writeln(' Варіант 30');

Writeln(' a*b/4, якщо b > a');

Writeln(' X = -55, якщо b = a');

Writeln(' (b - 5)/a, якщо b < a');

Writeln;

L1:

Input(b,invB);

Input(a,invA);

if F(a,b,x) then Writeln ('x=',x)

else goto L1;

Writeln('Знову? (y/n)');

ch:=ReadKey;

Until (ch='n') or (ch='N');

End.

У контрольній роботі №2 необхідно обчислити значення цілої змінної Х в залежності від значень теж цілих змінних a і b з обліком області допустимих значень.

Програмі присвоєне ім'я Work2:

· У фігурних дужках (коментар) записана умова задачі варіанта 30.

· У поле виклику бібліотечних модулів USES записаний модуль CRT.

· У поле завдання констант визначені значення строкових констант: inv1, inv2, inv3, inv4, inv5, inv, inv.

· У поле міток описана мітка L1.

· У поле опису змінних описані змінні - a, b, x: integer; ch: char.

· Далі випливають описання функції F і процедури Input.

· Записано головну програму, що викликає потрібні процедури і функції, відповідно до алгоритму рішення задачі.

Функція F визначена як BOOLEAN. У заголовку функції описані вхідні параметри a,b:integer (передаються з головної програми) і вихідний параметр x:integer (передається в головну програму). У тілі функції використовуються локальні змінні x1: real і s1: string.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: