IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> разделение одномерного массива
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Denis

Репутация: -  0  +


паскаль только начал изучать помогите пожалуйста вот с такой програмой:
Разделить одномерный массив на 3 части, которые по возможности имеют минимальное расхождение сумм
P.S.заранее спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Как-то так ?

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.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Только не будет это компилироваться под TP ... no1.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


yes2.gif

Исправил под TP.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






а вы уверены что эта прога пашет?
rolleyes.gif
она у меня вызывает сомнения blink.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






А ты приведи пример входных данных, то, что тебе программа выдает, и то, что ты ХОЧЕШЬ, чтобы она выдавала... А то слишком много вот таких как ты: "У меня вызывает сомнения" mad.gif А сам даже не соизволил пример работы программы привести...

Вызывает - напиши сам, чтоб НЕ вызывало!
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.10.2020 15:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name