
Вопрос задан 21.06.2023 в 20:03.
Предмет Информатика.
Спрашивает Васильева Алена.
Даю 50 балов!!!! Задание: нужно написать код, чтобы он строил график тригонометрической функции по
введенным данным

Ответы на вопрос

Отвечает Галкин Антон.
Uses crt,graph;
function F(x:real):real;{заданная функция}
begin
if(x>=pi)and(x<=1.5*pi)and(sin(x)+cos(3*x)<0)then F:=0
else F:=sin(x)+cos(3*x);
end;
const xn=0;{начало и конец интервала, шаг табуляции}
xk=2*pi;
h=2*pi/30;
var f1:text;{текстовый файл}
x,y,mx,my:real;
x1,y1:array[1..100] of real;{массивы значений абцисс и ординат}
n,i,gd,gm,x0,y0:integer;
st:string;
begin
clrscr;
{создаем файл и открываем для записи}
assign(f1,'tabl.txt');
rewrite(f1);
writeln(f1,'--------------');{шапка таблицы}
writeln(f1,'| x | F(x) |');
writeln(f1,'--------------');
x:=xn;{табулируем функцию, пишем в файл и в массивы}
n:=0;
while x<=xk+h/2 do
begin
y:=F(x);
n:=n+1;
x1[n]:=x;
y1[n]:=y;
writeln(f1,'|',x:4:1,' |',y:5:2,' |');
x:=x+h;
end;
writeln(f1,'--------------');
close(f1);
writeln('Результаты записаны в файл TABL.txt');
write('Press Enter...');
readln;
{переходим в графический режим}
gd:=0;
initgraph(gd,gm,'');
x0:=40;{начало координат}
y0:=getmaxY div 2;
mx:=(getmaxX-60)/(xk-xn);{масштабы по осям}
my:=100;
line(20,y0,getmaxX-20,y0);{оси координат}
outtextXY(getmaxX-15,y0-15,'X');
line(x0,getmaxY-20,x0,20);
outtextXY(x0-15,10,'Y');
{засечки подписи на осях}
for i:=1 to round(xk)+1 do
begin
line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
line(x0-round(i*mx),y0+3,x0-round(i*mx),y0-3);
line(x0+3,y0+round(i*my),x0-3,y0+round(i*my));
line(x0+3,y0-round(i*my),x0-3,y0-round(i*my));
str(i,st);
outtextXY(x0+round(i*mx),y0+10,st);
outtextXY(x0-round(i*mx),y0+10,'-'+st);
outtextXY(x0-20,y0-round(i*my),st);
outtextXY(x0-20,y0+round(i*my),'-'+st);
end;
{график по точкам}
moveto(x0+round(x1[1]*mx),y0-round(y1[1]*my));
for i:=1 to n do
begin
setcolor(12);
lineto(x0+round(x1[i]*mx),y0-round(y1[i]*my));
setcolor(10);
circle(x0+round(x1[i]*mx),y0-round(y1[i]*my),2);{точки}
end;
readln
end.
function F(x:real):real;{заданная функция}
begin
if(x>=pi)and(x<=1.5*pi)and(sin(x)+cos(3*x)<0)then F:=0
else F:=sin(x)+cos(3*x);
end;
const xn=0;{начало и конец интервала, шаг табуляции}
xk=2*pi;
h=2*pi/30;
var f1:text;{текстовый файл}
x,y,mx,my:real;
x1,y1:array[1..100] of real;{массивы значений абцисс и ординат}
n,i,gd,gm,x0,y0:integer;
st:string;
begin
clrscr;
{создаем файл и открываем для записи}
assign(f1,'tabl.txt');
rewrite(f1);
writeln(f1,'--------------');{шапка таблицы}
writeln(f1,'| x | F(x) |');
writeln(f1,'--------------');
x:=xn;{табулируем функцию, пишем в файл и в массивы}
n:=0;
while x<=xk+h/2 do
begin
y:=F(x);
n:=n+1;
x1[n]:=x;
y1[n]:=y;
writeln(f1,'|',x:4:1,' |',y:5:2,' |');
x:=x+h;
end;
writeln(f1,'--------------');
close(f1);
writeln('Результаты записаны в файл TABL.txt');
write('Press Enter...');
readln;
{переходим в графический режим}
gd:=0;
initgraph(gd,gm,'');
x0:=40;{начало координат}
y0:=getmaxY div 2;
mx:=(getmaxX-60)/(xk-xn);{масштабы по осям}
my:=100;
line(20,y0,getmaxX-20,y0);{оси координат}
outtextXY(getmaxX-15,y0-15,'X');
line(x0,getmaxY-20,x0,20);
outtextXY(x0-15,10,'Y');
{засечки подписи на осях}
for i:=1 to round(xk)+1 do
begin
line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
line(x0-round(i*mx),y0+3,x0-round(i*mx),y0-3);
line(x0+3,y0+round(i*my),x0-3,y0+round(i*my));
line(x0+3,y0-round(i*my),x0-3,y0-round(i*my));
str(i,st);
outtextXY(x0+round(i*mx),y0+10,st);
outtextXY(x0-round(i*mx),y0+10,'-'+st);
outtextXY(x0-20,y0-round(i*my),st);
outtextXY(x0-20,y0+round(i*my),'-'+st);
end;
{график по точкам}
moveto(x0+round(x1[1]*mx),y0-round(y1[1]*my));
for i:=1 to n do
begin
setcolor(12);
lineto(x0+round(x1[i]*mx),y0-round(y1[i]*my));
setcolor(10);
circle(x0+round(x1[i]*mx),y0-round(y1[i]*my),2);{точки}
end;
readln
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Благодарю за 50 баллов! Чтобы построить график тригонометрической функции в Python, вы можете использовать библиотеку Matplotlib. Вот пример кода для построения графика с использованием синусоиды (sin(x)):
pythonimport numpy as np
import matplotlib.pyplot as plt
# Запрос пользовательского ввода для выбора функции
function_choice = input("Введите название функции (sin или cos): ").lower()
# Проверка ввода и выбор функции
if function_choice == "sin":
func = np.sin
func_name = "sin(x)"
elif function_choice == "cos":
func = np.cos
func_name = "cos(x)"
else:
print("Неправильный выбор функции. Выберите 'sin' или 'cos'.")
exit()
# Запрос пользовательского ввода для интервала и шага
start = float(input("Введите начальное значение x: "))
end = float(input("Введите конечное значение x: "))
step = float(input("Введите шаг: "))
# Создание массива значений x
x = np.arange(start, end, step)
# Вычисление значений функции
y = func(x)
# Построение графика
plt.figure(figsize=(8, 6))
plt.plot(x, y, label=func_name)
plt.title(f'График {func_name}')
plt.xlabel('x')
plt.ylabel(f'{func_name}')
plt.grid(True)
plt.legend()
plt.show()
Этот код позволяет пользователю выбрать между sin(x) и cos(x), ввести начальное и конечное значения x, а также шаг, после чего строит соответствующий график.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili