IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> матрица в файле, m-ный столбец
сообщение
Сообщение #1


Гость






В итоговом файле получаю не 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.


Сообщение отредактировано: Mapина -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
В итоговом файле получаю не m-ный столбец.
Странно, все нормально отрабатывает (при 10*10). Архивируй файл данных и присоединяй его, возможно проблема именно там...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






не получается присоединить.

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

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
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, и что ты получаешь в выходном файле, скажем, если задашь 5-ый столбец?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






lol.gif вот веселье. эт я из разных способов сейчас собрала , кое что исправила и всё заработалО!
chore.gif в честь вразумителя!




Сообщение отредактировано: Mapина -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






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


for i := 1 to 10 do
begin
for j := 1 to m do


Сообщение отредактировано: Mapина -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






я имелла в виду:
как будет выглядить процедура Вывода, если необходимо чтоб выписывался 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]....
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Чтоб выписывался ТОЛЬКО столбец №m, у тебя уже есть... Объясни нормально, что тебе надо изменить? Ты не хочешь ЧИТАТЬ из файла все значения ПОСЛЕ требуемого столбца? Тогда менять надо не процедуру вывода, а процедуру ввода...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






каким образом?
с исходным файлом и итоговым?

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

должно остаться
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






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

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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






напишите пожалуйста

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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 21.09.2020 19:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name