Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Вінницький національний технічний університет
Інститут Інформаційних технологій та комп’ютерної інженерії
Кафедра ОТ
Звіт
з виконання лабораторної роботи №1
з дисципліни «Програмування»
на тему: «Дослідження лінійних та розгалужених алгоритмів»
Тема: Дослідження лінійних та розгалужених алгоритмів.
Мета: 1.1Обчислити заданий змішаний арифметичний вираз для даних у форматах REAL (змінні a,b) і INTEGER (інші змінні). 1.2Обчислити заданий цілочисельний вираз для данних a, b у форматі INTEGER, використовуючи оператор IF. Результат Х - теж цілочисельний (INTEGER чи LONGINT).
Умова задачі:
Варіант 7
1.1
Написати лінійний алгоритм до даного виразу.
Створити програму на мові Pascal.
Провести обрахунки та записати висновок.
1.2
Написати розгалужений алгоритм до даного виразу.
Створити програму на мові Pascal у форматі INTEGER.
Провести обрахунки та записати висновок.
/
Аналіз задачі:
1.1Для даного виразу можна скласти алгоритм обчислення, основна умова якого: а×а-1≠0; змінні с і d можуть набувати будь яких значень.
1.2 Для даного виразу можна скласти алгоритм обчислення, основна умова якого: b≠0; змінна a може набувати будь якого значення.
Розробка алгоритму:
1.1
1.2
Лістинг програми:
1.1
var a, d, c, y :real;
Begin
writeLn ('y=((2*c)-ln(d/4))/(a*a-1)');
writeLn (' ');
write ('Введіть число A ');
readLn (a);
write ('Введіть число C ');
readLn (c);
write ('Введіть число D ');
readLn (d);
y:=((2*c)-(ln(d/4)))/(a*a-1);
write (y);
End.
1.2
Uses CRT;
Const
inv1='Повторiть введення';
inv2=' Ділення на нуль! ';
inv3='Результат ';
inv4='виходить за дiапазон! ';
inv5=' значення, що вводиться, ';
invA='A';
invB='B';
Label L1;
var
a,b,x : Integer;
ch : Char;
function F (a,b:Integer; Var x:Integer) : Boolean;
Var x1 : Real;
s1 : String;
Begin
F:=True;
if b>a then x1:=(a-5)/b
else if b=a then x1:=-125
else if a=0 then
Begin
s1:=inv2+inv1;
Writeln(s1);
F:=False;
Exit;
End
else x1:=5*a+b;
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('Введiть значення '+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('Варiант 7');
Writeln(' 5*a+b, якщо a>b');
Writeln('X = -125, якщо a=b');
Writeln(' (a-5)/b, якщо a<b');
Writeln;
L1:
Input(b,invB);
Input(a,invA);
if F(a,b,x) then Writeln ('x=',x)
else goto L1;
Writeln('Для повторного piшення натисни на "Enter"');
ch:=ReadKey;
Until (ch='n') or (ch='N');
end.
Результати роботи програми:
1.1
1.2
Висновок: Виконавши лабораторну роботу я навчився обчислювати заданий змішаний арифметичний вираз для даних у форматах REAL та INTEGER. А також я обчислював заданий цілочисельний вираз для данних a, b у форматі INTEGER, використовуючи оператор IF. Результат Х - теж цілочисельний (INTEGER чи LONGINT).
Контрольні питання
Особливості виконання досліджуваних операторів: умовні, уведення-висновку.
Процедури і функції. Формальні і фактичні параметри.
Арифметичні вирази: знаки арифметичних операцій, стандартні функції.
Діапазон припустимих значень для цілочисельних змінних (INTEGER або LONGINT).
Обробка аварійних ситуацій.