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

Процедура транспонирования двух разных матриц

23.03.2009, 17:05. Показов 2851. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! Помогите, пожалуйста, написать программу. Условие:
"С помощью подпрограммы нахождения транспонированной матрицы найти матрицу B, транспонированную по отношению к заданной матрице A размерности 7 на 9, и матрицу D, транспонированную по отношению к заданной матрице C размерности 5 на 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
var A,C,B,D:matrix;
f1,f2:text;
i,j:integer;
procedure trans(n,m: integer);
var i,j:integer;
begin
for i:=1 to m do
for j:=1 to n do
B[i,j]:=A[i,j];
end;
begin
assign(f2, 'C:\03-111\in.txt');
reset(f2);
for i:=1 to n do
for j:=1 to n do
read (f2, A[i,j]);
close(f2);
assign(f1, 'C:\03-111\out.txt');
rewrite(f1);
for i:=1 to n do
for j:=1 to n do
write(f1, ' ',  B[i,j]:3:1);
writeln(f1);
close(f1);
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2009, 17:05
Ответы с готовыми решениями:

процедура транспонирования
Проверьте свойства (АT)T,где А - исходная матрица (n*n), T- означает транспонирование. Используйте процедуру транспонирования. ...

Процедура транспонирования.
Помогите написать программу. Используйте процедуры ввода и вывода элементов матрицы по строкам. ...

Написать подпрограмму транспонирования квадратных матриц
Написать подпрограмму транспонирования квадратных матриц. Выполнить для 2 матриц различной размерности.

6
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2009, 17:24
B[i,j]:=A[i,j];
А Вам не кажется что это не транспонирование, а копирование?
0
0 / 0 / 0
Регистрация: 23.03.2009
Сообщений: 6
23.03.2009, 17:28  [ТС]
Моя ошибка, там должно быть так
B[i,j]:=A[j,i]
Опечатка.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2009, 17:30
А в чем у Вас проблема?
0
0 / 0 / 0
Регистрация: 23.03.2009
Сообщений: 6
23.03.2009, 17:34  [ТС]
Не могу понять, как сделать процедуру для транспонирования сразу двух матриц и как вывести результат в файл (раньше с подпрограммами не работал, поэтому не знаю, как выводить результат таких программ). И в коде программы упустил первые строки:
program n2;
const n=9;
type matrix=array[1..n,1..n]of real;
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2009, 19:48
Вот отремонтировал вашу программу. Первое, это то что матрицы прямоугольные, а не квадратные, все немного по другому.
Создаем 2 входных файла для каждой матрицы, можно один файл, но надо программу переделывать, если надо, завтра переделаю.
В файле в первой строке пишете 2 целых числа - размеры матрицы.
затем в n строках по m вещественных чисел. Числа через пробел, разделитеьб точка.
Все файлы в одной папке, как у Вас.
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
uses crt;
type Tmatr=array[1..20,1..20] of real;{тип матрицы}
procedure Vvod(var f:text;var x,y:byte; var mt:Tmatr);
{ввод данных из файла, файл, размеры,. матрица}
var i,j:byte;
    s:string;
begin
read(f,x);{читаем первое целое число в первой строке}
read(f,y);{читаем второе целое число в первой строке}
readln(f,s);{читаем строку и пропускаем}
for i:=1 to x do
  begin
    for j:=1 to y do
      begin
       read (f,mt[i,j]);{читаем остальные числа-матрицу}
       write(mt[i,j]:6:2);{выводим на экран}
      end;
    writeln;
  end;
close(f);{закрываем файл}
end;
procedure Vyvod(var f:text;y,x:byte; var mt:Tmatr);{вывод на экран и в файл транспонированной}
var i,j:byte;
begin
for i:=1 to y do
  begin
    for j:=1 to x do
      begin
       write(f,mt[i,j]:6:2);{в файл}
       write(mt[i,j]:6:2);{на экран}
      end;
    writeln(f,'');{на новую строку в файле}
    writeln;
  end;
close(f);
end;
procedure trans(x,y:byte;mt:Tmatr; var mt1:Tmatr);{транспонирование}
var i,j:byte;
begin
for i:=1 to x do
for j:=1 to y do
mt1[j,i]:=mt[i,j];{меняем местами во второц матрице столбцы и строки(не квадратная матрица)}
end;
 
var A,C,B,D:Tmatr;{матрицы}
    na,ma,nc,mc:byte;{их размеры}
    f1,f2,g1,g2:text;{входные и выходные файлы}
begin
clrscr;
assign(f1, 'C:\03-111\in1.txt');
reset(f1);
writeln('Ishodnaya matrica A:');
Vvod(f1,na,ma,a);{ввод}
trans(na,ma,a,b);{транспонирование}
assign(f2, 'C:\03-111\out1.txt');
rewrite(f2);
writeln('Transponirovannaya matrica B=At:');{вывод на экран и в файл}
writeln(f2,'Transponirovannaya matrica B=At:');
Vyvod(f2,ma,na,b);{строки и столбцы поменяли}
readln;
assign(g1, 'C:\03-111\in2.txt');
reset(g1);
writeln('Ishodnaya matrica C:');{то же для другой матрицы}
Vvod(g1,nc,mc,c);
trans(nc,mc,c,d);
assign(g2, 'C:\03-111\out2.txt');
rewrite(g2);
writeln('Transponirovannaya matrica D=Ct:');
writeln(g2,'Transponirovannaya matrica D=Ct:');
Vyvod(g2,mc,nc,d);
readln
end.
0
0 / 0 / 0
Регистрация: 23.03.2009
Сообщений: 6
23.03.2009, 19:53  [ТС]
Спасибо вам огромное! Учту информацию про размер матриц. Вывод из одного файла не обязателен (в задании такого условия нет). Премного балгодарен за вашу помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2009, 19:53
Помогаю со студенческими работами здесь

Процедура сортировки для двух разных таблиц
У меня возник такой неординарный вопрос, наверно, даже странный! на форме у меня есть 2 таблицы, данные в них отображаются из БД одни и те...

Перемножение двух матриц которые хранятся в разных файлах
Ребят, всем привет. такая проблема: надо рассчитать произведение двух матриц, которые хранятся в разных файлах. Сидел около 5 часов, никак...

Как вычислить определитель для двух разных матриц
У меня написана функция для нахождения определителей матриц.Есть две матрицы разных порядков.Как найти определители каждой из этих...

Алгоритм транспонирования матриц
К примеру есть матрица где n=5, m=8; как написать программу транспонирования матрицы, не могу разобраться... Я делаю temp матрицу temp...

Разбить макрос на подпрограммы (программа транспонирования матриц)
Заданы две матрицы B(4,4) и D(3,3). Написать программу транспонирования каждой из заданных матриц с последующим перемножением...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru