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

Работа с массивами, вывод результатов в файл

26.03.2017, 21:57. Показов 616. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, найти ошибку.
задание. Составьте следующие подпрограммы (процедуры или функции): 1) чтение элементов матрицы из текстового файла, 2) вывод элементов матрицы в текстовый файл, 3)Сформировать одномерный массив из сумм элементов строк матрицы и вывести результаты в текстовый файл. Программа просчитывает только сумму элементов последней строки матрицы, а необходимо суммы элементов каждой строки вывести в массив в текстовый файл. Структуру написанной программы координально менять нельзя, (упрощенный вариант работает) важна работа именно в данном оформлении. Помогите, пожалуйста,пятые сутки мучаюсь
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
78
79
80
81
82
83
84
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 } 
  procedure Massiv(const Matr, Mass: TMatr; m, n: TIndex; MatrName:string; var F:Text);
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;
    begin
      Mass[1,j]:= s[i];
      
    end; 
  
  end; { function SumOfPos }
  Writeln(F); Writeln(F, MatrName);
  for i:=1 to m do begin
    Write(F, Mass[1,j]:8:2)
  end;
end;  
var
  FDat,FRes: Text;
  A: TMatr;
  B: TMAtr;
  Mas: TMatr;
  mA:TIndex;
  T:TIndex;
  nA:TIndex;
  mB:TIndex;
  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);
  Massiv(A, Mas, mA, nA, 'A', FRes);
  Writeln(FRes);
  WriteMatrix(B, mB, nB, 'B', FRes); { вывод матрицы B в файл результатов } 
  Writeln(FRes); 
  Massiv(B, Mas, mB, nB, 'B', FRes);
  
  
  Close(FDat); Close(FRes);
  
 
end. { program LabWork10 }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2017, 21:57
Ответы с готовыми решениями:

Вывод результатов работы программы в файл
добрый день. опыт не большой в работе с Паскалем. есть исходный код программы. проблема вот в чем, какие значения вводить, и как сделать...

Поиск максимального элемента массива в функции и вывод всех результатов на экран и в файл
Всем привет! Задача следщая: 1. Сформировать двумерный массив F размером 8 x 8 2. с помощью генератора случайных чисел и вывести...

Работа с типизированными файлами. Вывод в файл
program tip; uses crt; type rec=record N:integer; Nr:string; type1:string; cena:integer; time:integer;

4
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
26.03.2017, 22:08
Уже ведь была тема: Процедуры и функции обработки массивов
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
26.03.2017, 22:12  [ТС]
да была
но мне нужно исправить именно ЭТУ, не переписать, не написать, а исправить и оставить в таком виде оформления, переписанная заново по другому оформлению работает корректно, но мне нужно для сдачи лабораторно, сохранить оформление, я безвылазно сижу с этой программой, не пойму где ошибка и помочь никто не может
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
26.03.2017, 23:16
Вот, теперь работает. Для удобства не стал использовать типы TIndex и TElem. А что касается ошибки: надо было открывать входной файл внутри процедуры ReadMatrix
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
78
79
program LabWork10;
const
  nmax=10;
type
  TElem=Real;
  TIndex=1..nmax;
  TMatr=array[1..nmax,1..nmax] of real;
  TMas=array[1..nmax] of real;
procedure ReadMatrix(var Matr: TMatr; var m,n: integer; F:Text);
{Чтение из файла F числа строк m, столбцов n и элементов матрицы Matr}
var 
  i,j: integer;
begin
  Assign(F, 'LW10Dat.txt'); Reset(F);
  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;
  close(F);
end;{procedure ReadMatrix}
procedure WriteMatrix(const Matr: TMatr; m, n:integer; MatrName: string; var F: Text); { Процедура для записи матрицы в некоторый файл F }
var i, j: integer;  
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 } 
  procedure Massiv(const Matr, Mass: TMatr; m, n: integer; MatrName:string; var F:Text);
var
  i,j: integer;
  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;
    begin
      Mass[1,j]:= s[i];
      
    end; 
  
  end; { function SumOfPos }
  Writeln(F); Writeln(F, MatrName);
  for i:=1 to m do begin
    Write(F, Mass[1,j]:8:2)
  end;
end;  
var
  FDat,FRes: Text;
  A: TMatr;
  B: TMAtr;
  Mas: TMatr;
  nA,mB,nB,T,mA:integer;
begin 
  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);
  Massiv(A, Mas, mA, nA, 'A', FRes);
  Writeln(FRes);
  WriteMatrix(B, mB, nB, 'B', FRes); { вывод матрицы B в фаиМ†л результатов } 
  Writeln(FRes); 
  Massiv(B, Mas, mB, nB, 'B', FRes);
  Close(FRes);
  
 
end. { program LabWork10 }
Добавлено через 2 минуты
Такое содержимое выходного файла я получаю. Оно?
Кликните здесь для просмотра всего текста
Вычисление суммы элементов строк матрицы.


Матрица A размером 3*3:
1.00 3.00 4.00
1.00 1.00 1.00
1.00 1.00 5.00


A
7.00 7.00 7.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 7.00 7.00
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 20
27.03.2017, 00:34  [ТС]
Спасибо огромнейшее, сама час назад нашла ошибку, в массив записала j вместо i Ищу ошибку в программе, а оказывается надо было просто проверить весь текст по буквам

Добавлено через 1 минуту
работает вот так теперь

Вычисление суммы элементов строк матрицы.


Матрица A размером 3*3:
1.00 1.00 1.00
2.00 -3.00 -5.00
2.00 3.00 0.00


A
3.00 -6.00 5.00

Матрица B размером 2*2:
1.00 -8.00
1.00 0.00


B
-7.00 1.00
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2017, 00:34
Помогаю со студенческими работами здесь

Работа с файлами: вывод-ввод результатов программы в текстовый файл
#include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main() { setlocale(0, "rus"); cout <<...

Вывод результатов запроса в файл, разделители
Вечер добрый! Проблема с добавлением разделителя ; при выводе таблицы в файл *.csv Если я через консоль делаю запрос, то всё отлично...

Работа с массивами и его вывод
Всем привет. У меня очень большой массив, из 50ти елементов. Как его вывести на 2 страницы?

Работа с массивами (ввод/вывод)
Ввести одномерный массив , состоящий из 12 элементов целого типа без знака с клавиатуры . Вывести полученный массив на экран в один столбец.

Ввод данных из файла и вывод результатов в файл
uses crt; const nmax=5000; type mas=array of real; {массив названий пунктов меню} const glav:array of string=('1-Zadanie1', ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru