Частина тексту файла (без зображень, графіків і формул):
Лабораторна робота №2
Тема: Програмування алгоритмів з розгалуженням
Мета роботи: Засвоїти методику програмування однієї з базових структур алгоритмів – розгалуженої; засвоїти запис констант. Змінних та операторів.
Завдання: Дано умову Р і дві функції від двох змінних Z(X;Y) та W(X;Y). Необхідно написати та перевірити блок-схему обчислення значення змінної Q за таким алгоритмом: Якщо умова Р виконується, то Q=Z(X;Y) інакше Q=W(X;Z). Вивести на екран відповідне повідомлення: «Умова Р (не) виконується» та значення змінної Q. За розробленою блок-схемою написати та виконати програму. Перед розробкою блок-схеми виконати спрощення заданих виразів та введення проміжних змінних для зменшення кількості математичних операцій. Спосіб введення даних - з клавіатури, потокове присвоєння змінним, опис констант – обирається студентом.
Умова Р: -2<=X<4, Y<>0; функції двох змінних:
Q=Z(X;Y) =((1-exp(2*x))*sqrt(exp(y)-exp(-y))/(2*((1-exp(y)+ sqrt(cos(y))))
Q=W(X;Y)= ((1-exp(x))*cos(y))/(1+exp(y)).
Аналіз даних:
Вхядні дані Х, У – дійсні.
Вихідні дані: змінні Z, W – дійсні, повідомлення «умова Р виконується», та «Умова Р не виконується».
Для спрощення виразів та зменшення математичних операцій, ввожу такі заміни:
t1:=1-exp(2*x);
t2:=1-exp(y);
t3:=sqrt(cos(y)); тоді
Z(X;Y):=(t1*sqrt(exp(y)-exp(-y))/(2*(t2+t3)));
W(X;Y) :=((1-exp(x))*cos(y))/(1+exp(y)).
Ескіз формату введення/виведення даних: «Введіть значення Х та У : Х,У: -2. 3 <Enter>. Умова Р не виконується.
Q=xxxxxxx
Розробка структури даних:
Ім’я змінної
в задачі
Ім’я змінної
в програмі
Тип
Призначення
X, Y
X,Y
дійсний
Вхідні дані, аргументи
ф-ції
Q
Q
дійсний
Вихідні дані
t1
t1
дійсний
1-exp(2*x)
t2
t2
дійсний
1-exp(y)
t3
t3
дійсний
sqrt(cos(y))
Р
__________
умова
Алгоритм програми:
Н
Текст програми:
Program lab2;
var x,y,q,t1,t2,t3,P:real;
BEGIN
repeat
Begin
t1:=1-exp(2*x);
t2:=1-exp(y);
t3:=sqrt(cos(y));
writeln('Vvesty znachenja x,y');
writeln('x='); readln(x);
writeln('y='); readln(y);
If ((-2<=x) and (x<4) and (y<>0))
then
if (y=0) then
writeln('umova vikonyetsja ale fynktsija ne isnye')
else
begin
q:=(t1*sqrt(exp(y)-exp(-y))/(2*(t2+t3)));
write('ymovy vukonano q=',q);
end
else
if (y=0) then
writeln('umova ne vikonane, funktsija ne isnue')
else
begin
q:=((1-exp(x))*cos(y))/(1+exp(y));
writeln('ymovy vukonano q=',q)
end;
write('vvedit 1 shob povtorutu rozrahonok, 0 shob zavershitu programy');
read(P);
end;
until (P=0)
end.
Тестування та налагодження програми:
Під час написання тексту програми були допущені помилки в написанні математичних виразів, зокрема з написанням замін. Були допущені типові пилки – пропуски крапки з комою та дужок.
Приклад роботи програми:
/
Висновок: під час розробки програми мною було введено в математичні вирази спрощення. Був розроблений алгоритм що містить в собі умову та має циклічну структуру. Під час компіляції програми були виявлені орфографічні помилки в написанні головних команд, пропущені розділові знаки. Під час тестуванні програми був виявлений наступний недолік: невиконання другорядної умови. Також був доданий оператор циклу. На даний момент програма функціонує нормально і є відлагодженою.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!