Показать сообщение отдельно
  #2  
Старый 19.05.2017, 00:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, у меня получилось вот так:
Код:
program SumX;
 
{$APPTYPE CONSOLE}

uses
  SysUtils, Math;
  
function getX(Num : Integer) : Double;
var
  Z, B, A, beta : Double;
begin
  WriteLn('Input values to calculate X'+IntToStr(I));
  Write('Input Z='); ReadLn(Z);
  Write('Input B='); ReadLn(B);
  Write('Input A='); ReadLn(A);
  Write('Input beta='); ReadLn(beta);
  
  Result := Z*Z*Z - B + Sqr(A) / Sqr(Tan(beta)); // Rad
  // Result := Z*Z*Z - B + Sqr(A) / Sqr(Tan(beta*PI/180)); // Grad
end;

var
  N, I : Integer;
  Y : Double;  
begin
  Write('Input number of X='); ReadLn(X);
  Y := 0;
  For I := 1 To N Do
    Y := Y + getX(I);
  WriteLn(Format('Y=%.2f',[Y]));
  ReadLn;
end;

end.

1. Массив тебе не нужен. У тебя простое сложение, которое можно сделать по ходу чтения данных
2. Там в функции рассчета X есть 2 примерно одинаковые строчки. Одна для beta в радианах (// Rad), вторая - градусах (// Grad). Надо оставить одну - которая правильная.
Ответить с цитированием