Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите найти ошибку в программе.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Бездарь
вот задача: Дана матрица А(МхМ), записанная в текстовый файл. Сформировать вектор В(М) по следующим правилам: если i-тая строка матрицы (i=1,2, …, m) есть убывающая последовательность, элементу вектора bi присвоить значение -1, в противном случае значение 1. Полученный файл дописать в файл.

 
program z;

const m=5;
var f:text;
a:array[1..m,1..m] of integer;
b:array[1..m] of integer;
i,j:integer;

begin

assign(f,'1.txt');
reset(f);
for i:=1 to m do
for j:=1 to m do
read(f,a[i,j]);
close(f);

for i:=1 to m do
begin
b[i]:=-1;
for j:=2 to m do
if a[i,j-1]<=a[i,j] then b[i]:=1;
end;

append(f);
for i:=2 to m do
write(f,b[i]:3);
close(f);

end.

.

Задача вычисляет не правильно. Что не так?
Lapp
М
Бездарь, пожалуйста, приведи название темы в соответствие с Правилами (ссылка вверху страницы)

мисс_граффити
for i:=2 to m do
write(f,b[i]:3);

а почему от 2, а не от 1?
Bard

assign(f,'l.txt'); {... ошибка твоя была здесь ...}
append(f);
for i:=2 to m do
write(f,b[i]:3);
close(f);


ты забыл поставить assign(...) перед append(f) smile.gif
мисс_граффити
Bard, правда? а зачем ВТОРОЙ раз устанавливать связь с ТЕМ ЖЕ файлом? Ты думаешь, после закрытия файла она теряется?
а может быть, ты попробовал запустить исправленный вариант и увидел, что он работает правильно (после добавления assign)?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.