Помощь - Поиск - Пользователи - Календарь
Полная версия: матрица в файле
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Mapина
В итоговом файле получаю не m-ный столбец. Пожалуйста, исправте!
(Есть файл с матрицей, но загрузить его, к сожелению, не могу.)

Пусть матрица А целых чисел размером10х10(а не 100х100 как в решении задачи) записана по строкам в файле. Перенесите в новый файл m ный столбец матрицы(m задаётся вводом).

Код
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, windows;

type
  Tmatr = array[1..10, 1..10] of integer;
var
  A : Tmatr;

  procedure Input(var A : Tmatr);
  var
    i, j : integer;
    filename : string;
    f : text;
  begin
    Write('Введи имя исходного файла : ');
    readln(filename);
    AssignFile(f, filename);
    reset(f);
    for i := 1 to 10 do
    begin
      for j := 1 to 10 do
        read(f, a[i,j]);
      readln(f);
    end;
    closefile(f);
  end;

  procedure Output(A : Tmatr);
  var
    i, m : integer;
    filename : string;
    f : text;
  begin
    write('Столбец для копирования : ');
    readln(m);
    Write('Введи имя результирующего файла : ');
    readln(filename);
    AssignFile(f, filename);
    rewrite(f);
    for i := 1 to 10 do
      writeln(f, a[i,m]);
    closefile(f);
  end;

begin
  SetConsoleCp(1251);
  SetConsoleOutputCP(1251);
  Input(a);
  Output(a);
  readln;
end.
volvo
Цитата
В итоговом файле получаю не m-ный столбец.
Странно, все нормально отрабатывает (при 10*10). Архивируй файл данных и присоединяй его, возможно проблема именно там...
Mapина
не получается присоединить.

Вообщем, есть "неопределённый" файл, который я открываю через блокнот, а в нём вот:

1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
volvo
Ну, и что ты получаешь в выходном файле, скажем, если задашь 5-ый столбец?
Mapина
lol.gif вот веселье. эт я из разных способов сейчас собрала , кое что исправила и всё заработалО!
chore.gif в честь вразумителя!


Mapина
а как будет выглядить процедура Вывода, если необходимо чтоб выписывался m-ый столбец так, допустим доходило до A[i,m] и переходило на i:=i+1


for i := 1 to 10 do
begin
for j := 1 to m do
Mapина
я имелла в виду:
как будет выглядить процедура Вывода, если необходимо чтоб выписывался m-ый столбец так, допустим доходило до A[i,m] и переходило на i:=i+1 с задействованием вот этого, и наверное ещё одной новой переменной, допустим t


for i := 1 to 10 do
begin
for j := 1 to m do
read(f, t);
writeln(f, t);
readln(f);
end;

приблизительно что-то такое должно быть!

Добавлено через 17 мин.
то есть мне было сказано так, что мол чтобы проходило не всю матрицу, а так допустим m=2, шло A[1,1], А[1,2] и так как m=2, то не смотрело A[1,3], а переходило на A[2,1]....
volvo
Чтоб выписывался ТОЛЬКО столбец №m, у тебя уже есть... Объясни нормально, что тебе надо изменить? Ты не хочешь ЧИТАТЬ из файла все значения ПОСЛЕ требуемого столбца? Тогда менять надо не процедуру вывода, а процедуру ввода...
Mapина
каким образом?
с исходным файлом и итоговым?

в любом случее
type
Tmatr = array[1..10, 1..10] of integer;
var
A : Tmatr;

должно остаться
Mapина
в итоге додумала вот до этого, прошу проверить, а то может что лишнее есть или не дописала!

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils, windows;

type
Tmatr = array[1..10, 1..10] of integer;
var
A : Tmatr;

procedure Obrab(var A : Tmatr);
var
i, j, m, t : integer;
filename_in, filename_out : string;
f_in, f_out : text;
begin
Write('Введи имя исходного файла : ');
readln(filename_in);
Write('Введи имя результирующего файла : ');
readln(filename_out);
write('Столбец для копирования : ');
readln(m);
AssignFile(f_in, filename_in);
reset(f_in);
AssignFile(f_out, filename_out);
rewrite(f_out);
for i := 1 to 10 do
begin
for j := 1 to m do
read(f_in, t);
writeln(f_out, t);
readln(f_in);
end;
closefile(f_in);
closefile(f_out);
end;

begin
SetConsoleCp(1251);
SetConsoleOutputCP(1251);
Obrab(a);
readln;
end.
Mapина
напишите пожалуйста

задача работает... а если файл должен быть типизированным(integer), то как будет выглядить решение!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.