Задача по PASCAl. Помогите сделать.Помогите сделать из внешнего файла !!!

Ответить
maia
Сообщения: 15
Зарегистрирован: 06 ноя 2008, 22:07

Задача по PASCAl. Помогите сделать.Помогите сделать из внешнего файла !!!

Сообщение maia » 02 дек 2008, 20:13

Помогите сделать из внешнего файла !!!


const
n = 3; m = 4;
var
mas: array[1..n, 1..m] of real;
i, j, k: integer;
sr: real;
begin
for j := 1 to m do
begin
for i := 1 to n do
begin
write('mas[', i, ',', j, '] = ');
readln(mas[i, j])
end;
if mas[i, 1] > mas[i, m] then k := i;
writeln
end;

for i := 1 to n do
begin
for j := 1 to m do write(mas[i, j]:6:2);
writeln
end;

writeln;
for i := 1 to m do sr := sr + mas[i, k];
sr := sr / n;

for i := 1 to n do
begin
for j := 1 to m do
begin
if j <> k then mas[i, j] := mas[i, j] - sr;
write(mas[i, j]:6:2)
end;
writeln
end;
readln
end.

Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Re: Задача по PASCAl. Помогите сделать.Помогите сделать из внешнего файла !!!

Сообщение Naeel Maqsudov » 03 дек 2008, 18:43

maia, вы в который уже раз наредкость некорректно описываете условие задачи. Что вам надо сделать? Заменить в приведенной программе ввод с клавиатуры на ввод из файла?
Формат файла какой должен быть?
Например так пойдет?

Код: Выделить всё

....
  ASSIGN(T, 'c:\somefile.txt');
  RESET(T);
  readln(T,M); 
  readln(T,N); 
  for j := 1 to m do
  begin
    for i := 1 to n do
    begin
      readln(T,mas[i, j])
    end;
    if mas[i, 1] > mas[i, m] then k := i;
  end;
  close(T);
....
в VAR
переменные:
T: TEXT;
mas:array[1..100,1..100] of real;


Файл должен содерджать числа, по 1 в каждой строке в следующем порядке:
-----8<----
M
N
mas[1,1]
mas[2,1]
...
-----8<----


PS
Это вместо куска:
for j := 1 to m do
begin
for i := 1 to n do
begin
write('mas[', i, ',', j, '] = ');
readln(mas[i, j])
end;
if mas[i, 1] > mas[i, m] then k := i;
writeln
end;

Ответить