titovazaiceva
12.01.2021 19:15

Нужно переделать под паскаль x=[]
y=[]
nmax=50
with open ('5.txt') as f:
for line in f:
data=list(map(float, line.split()))
x.append(data[0])
y.append(data[1])
x_sr=0
y_sr=0
sigma=0
for i in range(nmax-1):
sigma+=abs(y[i]-y[i+1])
sigma/=nmax
for i in range(nmax):
x_sr=x_sr+x[i]
y_sr=y_sr+y[i]
x_sr=x_sr/nmax
y_sr/=nmax
sum1=sum2=0
for i in range(nmax):
sum1=sum1+(x[i]-x_sr)*(y[i]-y_sr)
sum2=sum2+(x[i]-x_sr)*(x[i]-x_sr)
k=0
k=sum1/sum2
b=0
b=y_sr-k*x_sr
print('y =',k,'x +',b)
k=0
for i in range(nmax-2):
if (abs(y[i]-y[i+1])>3*sigma)and(abs(y[i+1]-y[i+2])>3*sigma):
print('x =',x[i+1],' y =',y[i+1])
x[i+1]=0
y[i+1]=0
k+=1

x_sr=0
y_sr=0
for i in range(nmax):
x_sr=x_sr+x[i]
y_sr+=y[i]
nmax-=k
x_sr/=nmax
y_sr/=nmax
sum1=sum2=0
for i in range(nmax):
sum1=sum1+(x[i]-x_sr)*(y[i]-y_sr)
sum2=sum2+(x[i]-x_sr)*(x[i]-x_sr)
k=0
k=sum1/sum2
b=0
b=y_sr-k*x_sr
print('y =',k,'x +',b)

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
дома9
05.10.2020 17:33

===== PascalABC.NET =====

type

 Node = auto class

   public

      data: integer;

     left, right: Node;

 end;    

     

procedure Add(var root: Node; x: integer);

begin

 if root = nil then

 begin

   root := new Node(x, nil, nil);

   exit

 end;

 if root.data > x then

   Add(root.left, x)

 else if root.data < x then

   Add(root.right, x)

end;

     

procedure Postfix(root: Node);

begin

 if root = nil then exit;

 Postfix(root.left);

 Postfix(root.right);

 Print(root.data)

end;

 

begin

 var s := Seq(51, 25, 73, 15);

 var R: Node;

 R := nil;

 foreach var x in s do

   Add(R,x);

 Add(R, 31);

 Add(R, 93);

 Postfix(R);

end.


с заданием по PASCAL! Очень Выручайте
с заданием по PASCAL! Очень Выручайте
с заданием по PASCAL! Очень Выручайте
0,0(0 оценок)
Ответ:
DarkD0711
05.10.2020 17:33

===== PascalABC.NET =====

type

 Node = auto class

   public

      data: integer;

     left, right: Node;

 end;    

     

procedure Add(var root: Node; x: integer);

begin

 if root = nil then

 begin

   root := new Node(x, nil, nil);

   exit

 end;

 if root.data > x then

   Add(root.left, x)

 else if root.data < x then

   Add(root.right, x)

end;

     

procedure Postfix(root: Node);

begin

 if root = nil then exit;

 Postfix(root.left);

 Postfix(root.right);

 Print(root.data)

end;

 

begin

 var s := Seq(51, 25, 73, 15);

 var R: Node;

 R := nil;

 foreach var x in s do

   Add(R,x);

 Add(R, 31);

 Add(R, 93);

 Postfix(R);

end.


с заданием по PASCAL! Очень Выручайте
с заданием по PASCAL! Очень Выручайте
с заданием по PASCAL! Очень Выручайте
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота