Міністерство освіти і науки України НУ «Львівська політехніка»
Кафедра теоретичної радіотехніки та радіовимірювань
ЗВІТ З ЛАБОРАТОРНОЇ РОБОТИ №1
НА ТЕМУ
«ПРОГРАМУВАННЯ АЛГОРИТМІВ З РОЗГАЛУЖЕННЯМ»
з дисципліни «Інформатика та обчислювальна техніка»
Підготував
студент
групи РТ-12
Дідух О.О.
Львів 2014
Мета роботи: засвоїти методику програмування однієї з базових структур алгоритмів - розгалуженої; засвоїти запис констант, змінних та операторів.
Завдання : Дано умову Р і дві функції від двох змінних Z(x,y) та W(x,y).
Необхідно написати та перевірити блок-схему обчислення значення змінної Q за таким алгоритмом: якщо умова Р виконується, то Q=Z(x,y) інакше Q=W(x,y). Вивести на екран відповідне повідомлення:”Умова Р (не) виконується” та значення змінної Q. За розробленою блок-схемою написати та виконати програму. Перед розробкою блок-схеми виконати спрощення заданих виразів та введення проміжних змінних для зменшення кількості математичних операцій.
Значення функцій від змінних Z(x,y) та W(x,y) і умова для 6 варіанту:
Вираз Z(x,y)
Вираз W(x,y)
Умова Р
(2<x(3
y(0
Аналіз завдання:
У випадку виконання умови ((2<x(3, y(0) змінна Q обчислюється за виразом Z(x,y), в цьому випадку ОДЗ включає всі числа , при яких умова Р виконується.
А у випадку не виконання умови ((2<x(3, y(0) змінна Q обчислюється за виразом W(x,y), в цьому випадку ОДЗ включає всі числа , при яких умова Р не виконується.
Спростимо наші вирази для зрозумілого мові програмування вигляду :
Вираз Z(x,y) можна спростити до такого вигляду :
=((1-exp(2*x))*(sin(y)*sin(y))-2)/((1+exp(x))+(cos(y)* cos(y)))
Вираз W(x,y) можна спростити до такого вигляду :
=((1-exp(2*x))*((exp(y)-exp(-y))/2)* ((exp(y)-exp(-y))/2)/(1+exp(x))
Спосіб вводу і виводу даних:
Вводити дані будемо за допомогою клавіатури , а виводити дані на екран за допомогою команд read(ln) і write(ln) відповідно.
Структура даних:
Ім’я в задачі
Ім’я в програмі
Тип
Призначення
х
х
Дійсна
Вх.дані,аргумент
у
у
Дійсна
Вх.дані,аргумент
Q
Q
Дійсна
Результат обчислення (Вих.дані)
Program Lab1;
var x,y,w,z:real;
begin
writeln(‘vvedit x’);
readln(x);
writeln(‘vvedit y’);
readln(y);
if (x>-2) and (x<=3) and (y<>0) then
begin
z:= ((1-exp(2*x))*(sin(y)*sin(y))-2)/((1+exp(x))+(cos(y)* cos(y)));
writeln(‘ymova P vukonyjetcja’);
writeln(‘znachena q stanovut’ ,z:0:3) end
else begin w:= ((1-exp(2*x))*((exp(y)-exp(-y))/2)* ((exp(y)-exp(-y))/2)/(1+exp(x))
writeln(‘ymova P ne vukonujetcja’);
writeln(‘znachena q stanovut’,w:0:3 );
end;
readln;
end.
Результати виконання і налагодження програми:
Висновок:я ознайомився з оператором розгалуження та його властивостями, символьними змінними та діями над ними, та з логічними функціями «не», «або», «і».
Створена програма працює коректно . Структура алгоритму програми включає в себе 2 розгалуження , при виконанні умови Р виконується 1 гілка розгалуження , а у випадку не виконання умови Р виконується 2 гілка розгалуження.