паскаль только начал изучать помогите пожалуйста вот с такой програмой:
Разделить одномерный массив на 3 части, которые по возможности имеют минимальное расхождение сумм
P.S.заранее спасибо
Как-то так ?
uses crt;
const
n = 5;
type
TArray = array [1..n] of Integer;
TResult = record
a, b: Integer;
end;
function Part(const arr: TArray; const _from, _to: Integer): Integer;
var
s, i: Integer;
begin
s := 0;
for i := _from to _to do
inc(s, arr[i]);
Part := s;
end;
procedure GetParts(const arr: TArray; var R: TResult);
var
a, b, delta, min: Integer;
begin
min := MaxInt;
for a := 1 to n - 2 do
for b := a + 1 to n - 1 do begin
DELTA :=
abs ( Part(arr, b + 1, n) - Part(arr, a + 1, b) ) +
abs ( Part(arr, b + 1, n) - Part(arr, 1, a) ) +
abs ( Part(arr, a + 1, b) - Part(arr, 1, a));
if DELTA < min then begin
min := DELTA;
R.a := a;
R.b := b;
end;
end;
end;
const
X: TArray = (1, 2, 3, 4, 5);
var
R: TResult;
begin
clrscr;
GetParts(X, R);
writeln('1->', R.a, ', ', R.a + 1, '->', R.b, ', ', R.b + 1, '->', n);
readln;
end.
Только не будет это компилироваться под TP ...
Исправил под TP.
а вы уверены что эта прога пашет?
она у меня вызывает сомнения
А ты приведи пример входных данных, то, что тебе программа выдает, и то, что ты ХОЧЕШЬ, чтобы она выдавала... А то слишком много вот таких как ты: "У меня вызывает сомнения" А сам даже не соизволил пример работы программы привести...
Вызывает - напиши сам, чтоб НЕ вызывало!
Viagra Fertilita
Can Amoxicillin Be Used For Acne
Healthman Viagra
Generico Priligy Funziona