Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите разобрать программу.

Автор: Бездарь 31.05.2007 12:29

Помогите пожалуйста мне разобрать, что в этой программе и зачем делалось.
Я подчеркнул красным что не смог понять.

 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.



for i:=1 to m do
for j:=1 to m do я так понимаю это цикл для того чтоб считать с фаила?

Автор: klem4 31.05.2007 12:31

М
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...



Цитата
for i:=1 to m do
for j:=1 to m do я так понимаю это цикл для того чтоб считать с фаила


в самом начала - да. Ты открываешь файл и читаешь из него значения в матрицу.

Автор: Бездарь 31.05.2007 12:34

для чего потом еще раз после закрытия файла цикл for i:=1 to m do.

Автор: Ozzя 31.05.2007 12:39

До закрытия. Добавляешь в файл (append), вектор b.

Автор: Бездарь 31.05.2007 12:47

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

Автор: volvo 31.05.2007 12:48

Цитата
До закрытия.
no1.gif После переоткрытия в режиме добавления... Close(f) все-таки был...

Автор: Ozzя 31.05.2007 12:57

Что-то туплю я сегодня. wacko.gif

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;

Сравниваются рядом стоящие элементы строки, если левый <= правого, то в вектор b пишется +1, а иначе -1.

Автор: Бездарь 31.05.2007 13:11

После открытия фаила для перезаписи зачем вот это?

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

Автор: Ozzя 31.05.2007 13:12

В файл пишется вектор b.

Автор: Бездарь 31.05.2007 13:29

b[i]:3 вот это что значит?

Автор: Ozzя 31.05.2007 13:33

Отводится 3 позиции на вывод числа

Автор: Бездарь 31.05.2007 13:36

спс тебе

Автор: Бездарь 31.05.2007 16:14

Цитата(Бездарь @ 31.05.2007 10:29) *

b[i]:3 вот это что значит?


а что за 3 позиии?

Автор: Ozzя 31.05.2007 16:38

Длина числа + кол-во пробелов.
Например,
Write(x:3); при x=21
выведет число 21 и перед ним один пробел