Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37

Сложение матриц и запись их в массив

08.05.2009, 21:23. Показов 3468. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
кароче у мя такая вот беда написал программку она не хочет запскатся
Задание звучало так:Создать два двумерных массива и записать их в файла, произвести чтения массивов и сложить их создав новый массив новый массив записать в файл .
Программка написаная мною имеет следуюший вид
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
uses crt;
Const
Nmax=10;
Type
 Matrix=array [1..Nmax,1..Nmax] of integer;
Var
A,B,C,N,K:matrix;
i,j,z,h:integer;
f1,f2:text;
s:integer;
name,names:string;
 
function fi:boolean;
         begin
         {$i-}
         assign(f1,name);
         reset(f1); close (f1);{$i+}
         fi:=(ioresult=0); end;
 
Procedure Vvod;
Var
i,j:integer;
Begin
assign(f1,name);
if not fi=true then  rewrite(f1);
            For i:=1 to z do
            For j:=1 to h do
                            Begin
                            Write ('[',i,',',j,']=');
                            Read (A [i,j]);
                          write(f1,a[i,j]);
                            End;
            For i:=1 to z do
                          Begin
                          For j:=1 to h do
                          Write (A [i,j]:5);
                          Writeln
                          End;
            For i:= 1 to z do
                           For j:=1 to h do begin
                           Write('[',i,',',j,']=');read(b[i,j]);
                           write(f1,b[i,j]);
                           end;
            For i:=1 to z do
                          Begin
                          For j:=1 to h do
                          Write (b[i,j]:5);
                          Writeln
                          End;
                          write(f1);
                          close(f1);
                          End;
 
Procedure clowenie (A, B: matrix; z,h: integer; Var C: matrix);
Var
i, j: integer;
Begin
assign(f2,'mat.txt');
reset(f1);rewrite(f2);
read(f1);
while not eof(f1) do begin
                     for i:=1 to z do
                     for j:=1 to h do begin
                     read(f1,a[i,j]);
                     end;
                     for i:=1 to z do
                     for j:=1 to h do begin
                     read(f1,b[i,j]);
                     END;
                     For i:= 1 to z do
                     For j:= 1 to h do
                     C [i, j]:= A[i,j]+B[i,j];
                     write(f2,c[i,j]);
close(f1);close(f2);
End;end;
 
procedure vivod;
begin
reset(f2);
FOR i:=1 to z do begin
                 for j:=1 to h do
                 write(c[i,j]:5);
                 writeln
                 end;
close(f2);
end;
 
Begin
clrscr;
writeln('ўўҐ¤ЁвҐ Ё¬п д*©«*');read(name);
Writeln ('vvedite razmernost matric A, B: ');
writeln('vvedite kolli4estvo strok');
Read (z);
writeln('vvedite kolli4estvo stolbcov');
read(h);
writeln;
Vvod;
Writeln;
clowenie (A,B,z,h,N);
vivod;
End.
что тут неправильно очень прошу помочь)))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.05.2009, 21:23
Ответы с готовыми решениями:

Транспонирование, умножение матриц, сложение матриц Реализовать в одной программере
транспонирование, умножение матриц, сложение матриц; B^3-A^T Реализовать в одной программере....

Дан массив квадратных целочисленных матриц. Отсортировать его по возрастанию значений сумм элементов этих матриц
Нужно использовать uses matrix;

Отсортировать массив матриц по возрастанию значений сумм элементов этих матриц
вот по этому примеру (здесь условие:дан массив квадратных целочисленных матриц. Отсортировать его...

21
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.05.2009, 22:54
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
85
86
87
88
89
uses crt;
Const
Nmax=10;
Type
Matrix=array [1..Nmax,1..Nmax] of integer;
Var
A,B,C:matrix;
i,j,z,h:integer;
f1:text;
s:integer;
name,names:string;
Procedure Vvod;
Var
i,j:integer;
Begin
assign(f1,name);
rewrite(f1);
writeln(f1,'Matrica A:');
writeln('Marica A:');
For i:=1 to z do
For j:=1 to h do
 Begin
  Write ('[',i,',',j,']=');
  Readln (A [i,j]);
 end;
for i:=1 to z do
 begin
  for j:=1 to h do
  write(f1,a[i,j]:5);
  writeln(f1,'');
 End;
writeln(f1,'Matrica B:');
writeln('Matrica B:');
For i:= 1 to z do
For j:=1 to h do
 begin
  Write('[',i,',',j,']=');
  readln(b[i,j]);
 end;
For i:=1 to z do
 Begin
  For j:=1 to h do
  write(f1,b[i,j]:5);
  writeln(f1,'');
 end;
close(f1);
End;
 
Procedure clowenie (var f1:text; A,B: matrix; z,h: integer; Var C: matrix);
Var
i, j: integer;
s:string;
Begin
reset(f1);
readln(f1,s);
for i:=1 to z do
for j:=1 to h do
read(f1,a[i,j]);
readln(f1,s);
readln(f1,s);
for i:=1 to z do
for j:=1 to h do
read(f1,b[i,j]);
readln(f1,s);
append(f1);
writeln(f1,'Matrica C:');
For i:= 1 to z do
For j:= 1 to h do
C [i, j]:= A[i,j]+B[i,j];
For i:= 1 to z do
 begin
  For j:= 1 to h do
  write(f1,c[i,j]:5);
  writeln(f1,'');
 end;
close(f1);
End;
 
Begin
clrscr;
writeln('введите имя файла');read(name);
Writeln ('vvedite razmernost matric A, B: ');
writeln('vvedite kolli4estvo strok');
Readln(z);
writeln('vvedite kolli4estvo stolbcov');
readln(h);
Vvod;
clowenie (f1,A,B,z,h,C);
End.
2
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
09.05.2009, 09:50  [ТС]
спасибо очень помог

Добавлено через 10 часов 1 минуту 49 секунд
а как сделать проверку файла на диске тость если есть файл с матрицами нами созданый то мы сразу переходим к сложению матриц
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.05.2009, 10:08
Не понимаю зачем проверка, если мы файл программно создаем и в этой же программе проверяем. Ну напиши так, если хочется.
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
Procedure clowenie (var f1:text; A,B: matrix; z,h: integer; Var C: matrix);
Var
i, j: integer;
s:string;
Begin
{I-}
reset(f1);
{I+}
if IOResult<>0 then
 begin
  writeln('Файл ',name,' несуществует!');
  exit;
 end
else
 begin
  readln(f1,s);
  for i:=1 to z do
  for j:=1 to h do
  read(f1,a[i,j]);
  readln(f1,s);
  readln(f1,s);
  for i:=1 to z do
  for j:=1 to h do
  read(f1,b[i,j]);
  readln(f1,s);
  append(f1);
  writeln(f1,'Matrica C:');
  For i:= 1 to z do
  For j:= 1 to h do
  C [i, j]:= A[i,j]+B[i,j];
  For i:= 1 to z do
   begin
    For j:= 1 to h do
    write(f1,c[i,j]:5);
    writeln(f1,'');
   end;
 end;
close(f1);
End;
1
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
09.05.2009, 10:13  [ТС]
смотри я имел ввиду мы делаем перед вводом массивов в файл проверку наличия файла если он есть тогда сразу переходим к сложению матриц если нету то мы его создаем я имел ввиду так
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.05.2009, 10:36
В этом случае надо переделывать программу, так как мы в этом случае не знаем что записано в файле, сколько строк и столбцов, т.е. при создании файла записать в него в первую строку через пробел количество строк и столбцов, чтоб потом их можно было считать при сложении матриц. Обычно в таких случаях делают разные процедуры и меню, в котором спрашивают создать новый файл или прочитать существующий. Вообще подпрограммы надо делать перед разделом var и использовать формальные параметры, короче надо переделывать. Подумай хорошо о структуре программы, что ты точно отнее хочешь, а потом пиши.
1
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
09.05.2009, 13:24  [ТС]
ladno togda budu doxodit kak ee cdelat

Добавлено через 2 часа 42 минуты 35 секунд
А как вывести получную матрицу из файла?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.05.2009, 13:29
А ты разве ее не выводишь в процедуре сложения?
1
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
09.05.2009, 13:30  [ТС]
нет тама помойму она записывается в файл еси я не ошибаюсь))))
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.05.2009, 13:35
она записывается в файл
Прогу видимо не сам писал, раз даже не знаешь где что написано. На такие глупости вообще отвечать не собираюсь.
1
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
09.05.2009, 14:14  [ТС]
ггг
не писал сам
тама уже тобой дописано коешто))))

Добавлено через 37 минут 42 секунды
я просто не вьехал о чем ты сказал. В процедуре сложение написано канеша что она должна выводить но у мя не собирается этого делать выводить токо значения матрицы А и В а матрицу С только записывает в Файл
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.05.2009, 14:23
выводить токо значения матрицы А и В а матрицу С только записывает в Файл
Вот условие.
новый массив записать в файл .
А тебе нафига вообще выводить на экран матрицы, ты их в файл записываешь.

Добавлено через 2 минуты 35 секунд
Если уж очень хочешь на экран, перепиши здесь
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
writeln(f1,'Matrica C:');
writeln('Matrica C:');
For i:= 1 to z do
For j:= 1 to h do
C [i, j]:= A[i,j]+B[i,j];
For i:= 1 to z do
 begin
  For j:= 1 to h do
    begin
     write(f1,c[i,j]:5);
     write(c[i,j]:5);
    end;
  writeln(f1,'');
  writeln;
 end;
1
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
09.05.2009, 14:30  [ТС]
спасибо)))
0
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
19.05.2009, 18:09  [ТС]
А как сделать так штобы он проверял наличие файла на диске ну типо если файл есть с матрицами сразу считл а если нету то создавал новый???
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.05.2009, 18:11
Читай книги и Гугл.
0
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
19.05.2009, 18:17  [ТС]
ну блин я то знаю как написать можно но у мя не хочет пахать так
я через функцию проверку делаю функция ниже я с ней работал в нескольких прогах а тута воше шпарить не хочет (((
А выглядит она приблизительно так
function fi:boolean;
begin
{$i-}
assign(f1,name);
reset(f1); close (f1);{$i+}
fi:=(ioresult=0); end;
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.05.2009, 18:19
Я тоже сколько не писал эту фигню, не работает, все равно компилятор все на себя берет.
0
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
19.05.2009, 18:25  [ТС]
лан бог с ним хотя бы просто напомни как выбрать из файла определенный массив и вывести его
например моей программы как вывести массив С так штобы читал из файла и выводил
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.05.2009, 18:54
for i:=1 to n do
read(f,a[i]);
0
6 / 2 / 2
Регистрация: 08.05.2009
Сообщений: 37
28.05.2009, 22:38  [ТС]
Блин подскажите как на этом примере сделать умножение матриц
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2009, 22:38
Помогаю со студенческими работами здесь

Сложение матриц
Разработать программу, демонстрирующую выполнение сложения матриц. Входные данные: Две матрицы...

Получить матрицу С[6, 6] путем сложения матриц A[6, 6] и B[6, 6].
Получить матрицу С путем сложения матриц A и B. Определить в результирующей матрице строку,...

Сложение двух матриц
сложить 2 матрицы A(6x6) и Б(6х6)? просто нигде не найти)) Найти след матрицы В(6х6)?

Процедура сложения матриц (найти ошибку)
procedure vvod(m,n,i,j:byte;var s:array of real ); begin writeln ('êîë-âî ðÿäêîâ :...

Сложение и умножение матриц
помогите я не знаю как сложить и умножит матрицы((( Составить программу для ввода двухмерных...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru