Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 5
1

ошибка в коде программы

01.06.2011, 23:10. Показов 356. Ответов 0
Метки нет (Все метки)

Помогите найти ошибку в коде программы

программа, которая считывает цепочку чисел и печатает наиболее длинную, монотонно возрастающую их подпоследовательность

Спасибо

Код
uses Crt;
const MAX_N = 5000;

var a: array [l..max_N] of word;
len : array [l..max_N] of word;
sum : array [l..max_N] of longint;

{ суммы наилучших подпоследовательностей }

next : array [l..max_N] of word;

{ "таблица выборов": следующие элементы в

наилучших подпоследовательностях }

fv : text;

N, m, k : word;

curr_len : word; curr_sum : longint; curr : word;

BEGIN

{ ввод данных и инициализация массивов }

assign(fv, ‘ secjuence .dat1) ; reset(fv);

readln(fv, N);

for m := 1 to N do read(fv, a [m]) ;

close(fv);

for m := 1 to N do begin

next[m] := 0; len[m] := 0; sum[m] := 0;

end;

{ Решение подзадач поиска m-наилучших подпоследовательностей }

for m := N downto 1 do begin

curr_len := 0; curr_sum := 0;

{Ищется начало k-наилучшего решения для к от m+1 до N,

т.е. одной из подзадач меньшего размера,

и запоминается в next[m]. В len[m] и sum[m]

запоминаются длина и сумма т-наилучшего решения }

for k := m+1 to N do

if a[k] >= a[t] then

.if (len[k] > curr_len) or

(len[k] = curr_len) and (sum[k] > curr_sum)

then begin

curr_len := len[k]; curr_sum := sum[k];

next[m] := k;

end;

len[m] := curr_len+l; sumtm] := curr_sum+a[m];

end;

{ Поиск начала к наилучшей подпоследовательности }

curr_len := 0; curr_sum := 0;

for k := 1 to N do

if (len[k] > curr_len) or

(len[k] = curr_len) and (sum[k] > curr_sum)

then begin

curr_len := len[k]; curr_sum := sum[k];

curr := k;

end;

assign(fv, 1 sequence.sol1); rewrite(fv);

k := curr;

{ Вывод наилучшей подпоследовательности }

while k о 0 do begin

write(fv, a [k], ‘ ‘); k := next[k];

end;

writeln(fv); writeln(fv, sum[curr]); close(fv);

END.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2011, 23:10
Ответы с готовыми решениями:

Ошибка в коде программы. Посчитать сумму.
Программа написана по этому заданию: Где-то в этом коде есть ошибка, которая не дает мне сдать...

Где ошибка в коде программы: создайте целочи...
привет всем, дана задача : создайте целочисленный массив со случайными числами. укажите соседство...

Ошибка в коде программы
Добрый день. Решил сделать платформер на pascalABC.net, но при запуске ГГ стоит на месте и не...

Ошибка в коде программы
Добрый день. Решил сделать платформер на pascalABC.net, но при запуске ГГ стоит на месте и не...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2011, 23:10

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Не понимаю в чем ошибка в коде программы
Задание: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков...

Есть ошибка в коде программы на строки. Выполняются не все условия
Нужно написать программу, которая будет добавлять элемент с1, после каждой встречи элемента с2 в...

Ошибка в коде программы
Здравствуйте! При вводе дробных чисел выдает ошибку 207, ошибочная операция с плавающей запятой. Не...

Ошибка в коде программы, которая определяет наличие заданной буквы в строке
В общем : я ввожу строку и букву, если буква в строке есть программа пишет мне true а если нету...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.