Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
1

Процедуры и функции обработки массивов

25.03.2017, 20:03. Показов 1063. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите ,пожалуйста, с написанием программы, а точнее, подскажите куда вставить строки:
Pascal
1
2
3
4
Writeln; 
Writeln('Массив сумм строк:'); 
for i:=1 to m do 
Write(s[i],' ');
чтобы в текстовый файл выводилась сумма элементов строк матрицы в виде одномерного массива, так как в данном варианте программы выводится только сумма элементов последней строки матрицы.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program LabWork10;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TMatr=array[TIndex, TIndex] of TElem;
  TMas=array[TIndex] of TElem;
procedure ReadMatrix(var Matr: TMatr; var m,n: TIndex; var F:Text);
{Чтение из файла F числа строк m, столбцов n и элементов матрицы Matr}
var 
  i,j: TIndex;
begin
  Read(F, m, n);
  for i:=1 to m do begin
    for j:=1 to n do begin
      Read(F, Matr[i,j]);
    end
  end
end;{procedure ReadMatrix}
procedure WriteMatrix(const Matr: TMatr; m, n:TIndex; MatrName: string; var F: Text); { Процедура для записи матрицы в некоторый файл F }
var i, j: TIndex;  
begin
  Writeln(F); Writeln(F, 'Матрица ', MatrName, ' размером ', m, '*', n, ':');
  for i := 1 to m do begin
    for j := 1 to n do begin
      Write(F, Matr[i,j]:8:2);
    end;
    Writeln(F);
  end;
end; { procedure WriteMatrix } 
  function Sum(const Matr: TMatr; m, n: TIndex): TElem; { Функция для вычисления суммы элементов каждой строки матрицы }
var
  i,j: TIndex;
  s: TMas;
  
begin
  for i:=1 to m do begin
  s[i]:=0;
    for j:=1 to n do begin
      s[i]:=s[i]+Matr[i,j];
    end;
  end;
  Sum:= s[i];
end; { function SumOfPos }
var
  FDat,FRes: Text;
  A, B:TMatr;
  mA,nA,mB,nB:TIndex;
begin 
  Assign(FDat, 'LW10Dat.txt'); Reset(FDat);
  Assign(FRes, 'LW10Res.txt'); Rewrite(FRes);
  ReadMatrix(A, mA, nA, FDat);
  ReadMatrix(B, mB, nB, FDat);
  Writeln;
  Writeln(FRes, 'Вычисление суммы элементов строк матрицы.');
  Writeln(FRes);
  WriteMatrix(A, mA, nA, 'A', FRes);
  Writeln(FRes, 'Сумма элементов строк матрицы. A: ', Sum(A, mA, nA):10:2);
  WriteMatrix(B, mB, nB, 'B', FRes); { вывод матрицы B в файл результатов } 
  Writeln(FRes,'Сумма элементов строк матрицы B:',Sum(B,mB,nB):10:2);
  Writeln(FRes);
  Close(FDat); Close(FRes);
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2017, 20:03
Ответы с готовыми решениями:

Создание массивов в Процедуры и Функции
Написать подпрограмму нахождения элементов двумерного массива целых чисел размера 6х4 в промежутке...

Собственные процедуры для обработки массивов
Вычислить z = (s1+s2) / 2, где s1 сумма положительных элементов массива X (50), а s2 сумма...

Процедуры обработки массивов данных
Составить программу обработки исходных данных. Количество элементов массивов не менее 10....

Процедуры и функции обработки файлов
Сформировать файл последовательности 15 чисел, в котором каждый i-й компонент определяется по...

19
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 20:09 2
Вот например. Попробуйте самостоятельно реализовать подобное в вашем коде
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const n=10;
var a:array [1..n,1..n] of integer;
begin
  var s:=0;
  var f:=OpenWrite('out.txt');//открытие файла для записи
  for var i:=1 to n do begin 
    for var j:=1 to n do begin
      a[i,j]:=Random(11); write(a[i,j]:3,' ');//генерация и вывод массива
      s+=a[i,j];//подсчёт суммы строки
    end;
    f.Write(s,' '); s:=0; //запись суммы строки в файл
    writeln;
  end;
  f.Close;
end.
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
25.03.2017, 20:58  [ТС] 3
Вот в таком варианте ( см ниже) все работает,но в первом варианте программы, выводится сумма элементов только последней строки матрицы, а Writeln('Массив сумм строк:');
Pascal
1
2
for i:=1 to m do 
Write(s[i],' ');
не видит, если не сложно подскажите куда именно в первой программе впихнуть это
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
program LabWork6;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TArr=array[TIndex, TIndex] of TElem;
  TMas=array[TIndex] of TElem;
var  
  A:TArr;
  m,
  n,
  i,j:TIndex;
  s: TMas;
begin
  Writeln('Введите число строк и столбцов исходной матрицы');
  Readln(m,n);
  Writeln('Введите элементы матрицы построчно');
  for i:=1 to m do begin
    for j:=1 to n do begin
      Read(A[i,j]);
    end;
    Readln;
  end;  
  Writeln('Исходные данные');
  Writeln;
  Writeln('Матрица A размером',m,'*',n);
  for i:=1 to m do begin
    for j:=1 to n do begin     
    end;
    Writeln
  end;
  for i:=1 to m do 
    begin
    s[i]:=0;
    for j:=1 to n do
    begin
      s[i]:=s[i]+A[i,j];
    end;
  end;
  Writeln;
  Writeln('Массив сумм строк:');
  for i:=1 to m do 
  Write(s[i],' ');
Readln
end.
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 21:03 4
Так вы ничего и не выводите в файл в своём коде
Для вывода в файл нужно писать (в вашем случае)
Pascal
1
Write(FRes,s[i],' ');
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
25.03.2017, 21:24  [ТС] 5
Если вы говорите про вот такой вариант, то все равно выводится сумма только последней строки
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program LabWork10;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TMatr=array[TIndex, TIndex] of TElem;
  TMas=array[TIndex] of TElem;
procedure ReadMatrix(var Matr: TMatr; var m,n: TIndex; var F:Text);
{Чтение из файла F числа строк m, столбцов n и элементов матрицы Matr}
var 
  i,j: TIndex;
begin
  Read(F, m, n);
  for i:=1 to m do begin
    for j:=1 to n do begin
      Read(F, Matr[i,j]);
    end
  end
end;{procedure ReadMatrix}
procedure WriteMatrix(const Matr: TMatr; m, n:TIndex; MatrName: string; var F: Text); { Процедура для записи матрицы в некоторый файл F }
var i, j: TIndex;  
begin
  Writeln(F); Writeln(F, 'Матрица ', MatrName, ' размером ', m, '*', n, ':');
  for i := 1 to m do begin
    for j := 1 to n do begin
      Write(F, Matr[i,j]:8:2);
    end;
    Writeln(F);
  end;
end; { procedure WriteMatrix } 
  function Sum(const Matr: TMatr; m, n: TIndex): TElem; { Функция для вычисления суммы элементов каждой строки матрицы }
var
  i,j: TIndex;
  s: TMas;
  
begin
  for i:=1 to m do begin
  s[i]:=0;
    for j:=1 to n do begin
      s[i]:=s[i]+Matr[i,j];
    end;
  end;
  Sum:= s[i];
end; { function SumOfPos }
var
  FDat,FRes: Text;
  A, B:TMatr;
  s:TMAs;
  i,m:TIndex;
  mA,nA,mB,nB:TIndex;
begin 
  Assign(FDat, 'LW10Dat.txt'); Reset(FDat);
  Assign(FRes, 'LW10Res.txt'); Rewrite(FRes);
  ReadMatrix(A, mA, nA, FDat);
  ReadMatrix(B, mB, nB, FDat);
  Writeln;
  Writeln(FRes, 'Вычисление суммы элементов строк матрицы.');
  for i:=1 to m do 
  Write(Fres,s[i],' ');
  Writeln(FRes);
  WriteMatrix(A, mA, nA, 'A', FRes);
  Writeln(FRes, 'Сумма элементов строк матрицы. A: ', Sum(A, mA, nA):10:2);
  WriteMatrix(B, mB, nB, 'B', FRes); { вывод матрицы B в файл результатов } 
  Writeln(FRes,'Сумма элементов строк матрицы B:',Sum(B,mB,nB):10:2);
  Writeln(FRes);
  Close(FDat); Close(FRes);
 
end. { program LabWork10 }
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 21:25 6
lenkablackberry, обрамляйте код тэгами, пожалуйста И приведите полный текст задания
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
25.03.2017, 21:32  [ТС] 7
Составьте следующие подпрограммы (процедуры или функции): 1) чтение элементов матрицы из текстового файла, 2) вывод элементов матрицы в текстовый файл, 3) обработка матрицы:Сформировать одномерный массив из сумм элементов строк матрицы. Для двух матриц произвольного размера, задаваемого в файле

Добавлено через 49 секунд
с тегами не копируется
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 21:33 8
В тексте задания не указано, что нужно выводить сформированный массив в файл
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 21:34 9
Нажимаете сюда и между тэгами вставляете свой код, всё просто
Название: 5b8be05085de4e3ba1e8e9391ecddb6c.png
Просмотров: 20

Размер: 803 байт
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
25.03.2017, 21:37  [ТС] 10
Исходя из темы заданий, подразумевается вывод в файл результатов, а у меня выводится вот это
Вычисление суммы элементов строк матрицы.


Матрица A размером 2*2:
1.00 1.00
2.00 -8.00
Сумма элементов строк матрицы. A: -6.00

Матрица B размером 3*3:
1.00 3.00 4.00
1.00 1.00 1.00
1.00 1.00 5.00
Сумма элементов строк матрицы B: 7.00
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 21:46 11
Вот (для примера) с матрицей 3 на 3. Матрица берётся из файла. Суммы строк выводятся как надо
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const n=3;
var a:array [1..n,1..n] of real;
begin
  var s:=0.0;
  var inp:=OpenRead('input.txt');
  var outp:=OpenWrite('out.txt');
  for var i:=1 to n do begin
    for var j:=1 to n do begin
      a[i,j]:=inp.ReadReal; write(a[i,j]:3,' ');
      s+=a[i,j];
    end;
    outp.Write(s,' '); s:=0;
    writeln;
  end;
  outp.Close; inp.Close;
end.
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
25.03.2017, 22:19  [ТС] 12
Извините, я уже второй день мучаю свою программу и уже запуталась в ней, в простых циклах, таких как привели вы или таких как (см ниже) проблем не возникает, но именно в данном варианте программы я не понимаю куда вставить FКes,Write(s,' '); s:=0; чтобы программа работала корректно, мне приходитсялибо несколько раз повторять var i, j: TIndex;
FDat,FRes: Text;
begin
Assign(FDat,'LW7Dat.txt'); Reset(FDat);
Assign(Fres,'LW7Res.txt'); Rewrite(FRes);
Readln(FDat, m, n); и тд. отчего программа работает, но не выносит данные в файл, либо программа работает как изначально. Я просто глупая, но спасибо большое за помощь.
вот такой цикл работает корректно
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program LabWork7;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TArr=array[TIndex, TIndex] of TElem;
  
var
  FDat,FRes: Text;
  A: TArr;
  m,n,
  i,j: TIndex;
  s: TElem;
begin
  Assign(FDat,'LW7Dat.txt'); Reset(FDat);
  Assign(Fres,'LW7Res.txt'); Rewrite(FRes);
  Readln(FDat, m, n);
  Writeln(FRes,'Исходные данные:');
  Writeln(FRes);
  Writeln(FRes,'Матрица A размером',m,'*',n);
  for i:=1 to m do begin 
    for j:=1 to n do begin
      Read(FDat, A[i,j]);
      Write(FRes, A[i,j]:8:2)
    end;
    Readln(FDat); Writeln(FRes);
  end;  
  s:=0;
  for i:=1 to m do begin 
    for j:=1 to n do begin
      if A[i,j]<0 then s:=s+A[i,j];
    end;
  end;
  Writeln(FRes);Writeln(FRes,'Сумма отрицательных элементов матрицы:',s:10:2);
  Close(Fdat); Close(FRes);
end.
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 22:29 13
Попробуйте так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program LabWork7;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TArr=array[TIndex, TIndex] of TElem;
  
var
  FDat,FRes: Text;
  A: TArr;
  m,n,
  i,j: TIndex;
  s: TElem;
begin
  Assign(FDat,'LW7Dat.txt'); Reset(FDat);
  Assign(Fres,'LW7Res.txt'); Rewrite(FRes);
  Readln(FDat, m, n);
  Writeln(FRes,'Исходные данные:');
  Writeln(FRes);
  Writeln(FRes,'Матрица A размером',m,'*',n);
  for i:=1 to m do begin 
    for j:=1 to n do begin
      Read(FDat, A[i,j]);
      Write(FRes, A[i,j]:8:2)
    end;
    Readln(FDat); Writeln(FRes);
  end;  
  s:=0;
  for i:=1 to m do begin 
    for j:=1 to n do begin
      s:=s+A[i,j];
    end;
    Write(FRes,s:10:2,' '); s:=0;
  end;
  Close(Fdat); Close(FRes);
end.
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
25.03.2017, 23:26  [ТС] 14
Простите пожалуйста, почему теперь вообще пустой файл выдает?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program LabWork10;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TMatr=array[TIndex, TIndex] of TElem;
  TMas=array[TIndex] of TElem;
procedure ReadMatrix(var Matr: TMatr; var m,n: TIndex; var FDat:Text);
{Чтение из файла F числа строк m, столбцов n и элементов матрицы Matr}
var 
  i,j: TIndex;
  FRes: Text;
  s: TMas;
begin 
  Assign(FDat,'LW7Dat.txt'); Reset(FDat);
  Assign(Fres,'LW7Res.txt'); Rewrite(FRes);
  Readln(FDat, m, n);
  Read(FDat, m, n);
  for i:=1 to m do begin
    for j:=1 to n do begin
      Read(FDat, Matr[i,j]);
      Write(FRes, Matr[i,j]:8:2);
    end
  end
end;{procedure ReadMatrix}
procedure WriteMatrix(const Matr: TMatr; m, n:TIndex; MatrName: string; var F: Text); { Процедура для записи матрицы в некоторый файл F }
var 
i, j: TIndex;  
FRes,FDat: Text;
begin
  Assign(FDat,'LW10Dat.txt'); Reset(FDat);
  Assign(FREs,'LW10Res.txt'); Rewrite(FRes);
  Writeln(FRes); Writeln(FRes, 'Матрица ', MatrName, ' размером ', m, '*', n, ':');
  for i := 1 to m do begin
    for j := 1 to n do begin
      Write(FRes, Matr[i,j]:8:2);
    end;
   Readln(FRes); Writeln(FRes);
  end;
end; { procedure WriteMatrix } 
  function Sum(const Matr: TMatr; m, n: TIndex): TElem; { Функция для вычисления суммы элементов каждой строки матрицы }
var
  i,j: TIndex;
  s: TMas;
  
begin
 
  for i:=1 to m do begin
  s[i]:=0;
    for j:=1 to n do begin
      s[i]:=s[i]+Matr[i,j];
    end;
  end;
  Sum:= s[i];
end; { function SumOfPos }
var
  
  A, B:TMatr;
  mA,nA,mB,nB:TIndex;
  FRes,FDat: Text;
begin 
  Assign(FDat, 'LW10Dat.txt'); Reset(FDat);
  Assign(FRes, 'LW10Res.txt'); Rewrite(FRes);
  ReadMatrix(A, mA, nA, FDat);
  ReadMatrix(B, mB, nB, FDat);
  Writeln;
  Writeln(FRes, 'Вычисление суммы элементов строк матрицы.');
  Writeln(FRes);
  WriteMatrix(A, mA, nA, 'A', FRes);
  Writeln(FRes, 'Сумма элементов строк матрицы. A: ', Sum(A, mA, nA):10:2);
  WriteMatrix(B, mB, nB, 'B', FRes); { вывод матрицы B в файл результатов } 
  Writeln(FRes,'Сумма элементов строк матрицы B:',Sum(B,mB,nB):10:2);
  Writeln(FRes);
  Close(FDat); Close(FRes);
 
end. { program LabWork10 }
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 23:34 15
Вы открываете файлы в теле программы, а потом пытаетесь снова их открыть, но у же в процедуре. Конфликт возникает, у меня вообще ваш код отказывается работать
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
25.03.2017, 23:50  [ТС] 16
Не могли бы вы подсказать какое из открытий файла тогда удалить из программ? Я действительно запуталась на столько, что уже не понимаю, как это исправить, не меняя структуры, Так как программа должна быть написана в таком формате, без упрощений. Попробовала написать упрощенную, все работает, но в общем виде мне не понятно когда открывать текстовый файл.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program LabWork10;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TMatr=array[TIndex, TIndex] of TElem;
  TMas=array[TIndex] of TElem;
procedure ReadMatrix(var Matr: TMatr; var m,n: TIndex; var F:Text);
{Чтение из файла F числа строк m, столбцов n и элементов матрицы Matr}
var 
  i,j: TIndex;
begin
  Read(F, m, n);
  for i:=1 to m do begin
    for j:=1 to n do begin
      Read(F, Matr[i,j]);
    end
  end
end;{procedure ReadMatrix}
procedure WriteMatrix(const Matr: TMatr; m, n:TIndex; MatrName: string; var F: Text); { Процедура для записи матрицы в некоторый файл F }
var i, j: TIndex;  
begin
  Writeln(F); Writeln(F, 'Матрица ', MatrName, ' размером ', m, '*', n, ':');
  for i := 1 to m do begin
    for j := 1 to n do begin
      Write(F, Matr[i,j]:8:2);
    end;
    Writeln(F);
  end;
end; { procedure WriteMatrix } 
  function Sum(const Matr: TMatr; m, n: TIndex): TElem; { Функция для вычисления суммы элементов каждой строки матрицы }
var
  i,j: TIndex;
  s: TMas;
  
begin
  for i:=1 to m do begin
  s[i]:=0;
    for j:=1 to n do begin
      s[i]:=s[i]+Matr[i,j];
    end;
  end;
  Sum:= s[i];
end; { function SumOfPos }
var
  FDat,FRes: Text;
  A, B:TMatr;
  mA,nA,mB,nB:TIndex;
begin 
  Assign(FDat, 'LW10Dat.txt'); Reset(FDat);
  Assign(FRes, 'LW10Res.txt'); Rewrite(FRes);
  ReadMatrix(A, mA, nA, FDat);
  ReadMatrix(B, mB, nB, FDat);
  Writeln;
  Writeln(FRes, 'Вычисление суммы элементов строк матрицы.');
  Writeln(FRes);
  WriteMatrix(A, mA, nA, 'A', FRes);
  Writeln(FRes, 'Сумма элементов строк матрицы. A: ', Sum(A, mA, nA):10:2);
  WriteMatrix(B, mB, nB, 'B', FRes); { вывод матрицы B в файл результатов } 
  Writeln(FRes,'Сумма элементов строк матрицы B:',Sum(B,mB,nB):10:2);
  Writeln(FRes);
  Close(FDat); Close(FRes);
 
end. { program LabWork10 }
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
25.03.2017, 23:58 17
Как по мне, проще всё таки переписать программу с нуля...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const max=10;
procedure FromFile(var a:array [,] of real; var n,m:integer);
begin
  var f:=OpenRead('input.txt');
  (n,m):=(f.ReadInteger,f.ReadInteger);
  SetLength(a,n,m);
  for var i:=0 to n-1 do begin
    for var j:=0 to m-1 do begin
      a[i,j]:=f.ReadReal;
    end;
    writeln;
  end;
  f.Close;
end;
 
procedure ToFile(a:array [,] of real; n,m:integer);
var b:array of real;
begin
  SetLength(b,n);
  var f:=OpenWrite('output.txt');
  f.Writeln('Исходный массив:');
  for var i:=0 to n-1 do begin
    for var j:=0 to m-1 do begin
      f.Write(a[i,j],' '); b[i]+=a[i,j];
    end;
    f.Writeln;
  end;
  f.Writeln('Суммы строк:');
  for var i:=0 to n-1 do f.Write(b[i],' ');
  f.Close
end;
 
var a:array [,] of real;
    n,m:integer;
begin
  FromFile(a,n,m);
  ToFile(a,n,m);
end.
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
26.03.2017, 00:06  [ТС] 18
Спасибо огромнейшее за все потраченное на меня время и за помощь! но как раз упрощенный вариант мне и запарывает препод, требует подробного решения, в котором путаница жуткая и как раз вариант скинутой мной программы максимально соответствует всем его требованиям, поэтому то я так к нему и привязалась
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
26.03.2017, 00:23 19
Ну а так?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const max=10;
procedure FromFile(var a:array [,] of real; var n,m:integer);
var f:text;
begin
  assign(f,'input.txt'); reset(f);
  read(f,n,m);
  SetLength(a,n,m);
  for var i:=0 to n-1 do begin
    for var j:=0 to m-1 do begin
      read(f,a[i,j]);
    end;
    writeln;
  end;
  close(f);
end;
 
procedure ToFile(a:array [,] of real; n,m:integer);
var b:array of real;
    f:text;
begin
  SetLength(b,n);
  assign(f,'output.txt'); rewrite(f);
  writeln(f,'Исходный массив:');
  for var i:=0 to n-1 do begin
    for var j:=0 to m-1 do begin
      write(f,a[i,j],' '); b[i]+=a[i,j];
    end;
    writeln(f);
  end;
  writeln(f,'Суммы строк:');
  for var i:=0 to n-1 do write(f,b[i],' ');
  close(f);
end;
 
var a:array [,] of real;
    n,m:integer;
begin
  FromFile(a,n,m);
  ToFile(a,n,m);
end.
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
26.03.2017, 00:55  [ТС] 20
Спасибо большое, попробую разобраться.
0
26.03.2017, 00:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2017, 00:55
Помогаю со студенческими работами здесь

Процедуры и функции обработки строк
Дано слово &quot;электродинамика&quot; Используя процедуры и функции обработки строк, составьте слова...

Процедуры и функции обработки строк
Добрый день, помогите с решением практической, заранее спасибо 1)Напишите программу для...

Шаблонные функции обработки массивов
Написать перегружены функции (int, double, char) для выполнения следующих операций: •...

Функции для обработки массивов
Добрый день! Помогите пожалуйста с программой. Есть две функции. В первой функции считывается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru