Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 12.12.2015
Сообщений: 60
1

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

03.02.2019, 22:29. Показов 1264. Ответов 7
Метки нет (Все метки)

Дан файл квадратных матриц порядка n. Преобразовать его, заменив каждую матрицу, не являющуюся симметричной, транспонированной.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2019, 22:29
Ответы с готовыми решениями:

Преобразовать файл, заменив каждую матрицу, не являющуюся симметричной, транспонированной
Дан файл квадратных матриц порядка n. Преобразовать его, заменив каждую матрицу, не являющуюся...

Вычислить матрицу C, являющуюся суммой матриц A и B
Даны матрицы A3*3 и B3*3: Вычислить матрицу C, являющуюся суммой матриц A и B.

Вычислить матрицу С, являющуюся суммой матриц А и В
Вычислить матрицу С(N,N), являющуюся суммой матриц А(N,N) и В(N,N). Матрица А задана, а элементы...

Найти матрицу C, являющуюся суммой матриц А и В
Найти на ЭВМ матрицу C, равную сумме матриц A и B. ci,j = ai,j + bi,j . Составить схему алгоритма...

7
Модератор
64056 / 47472 / 32727
Регистрация: 18.05.2008
Сообщений: 115,185
04.02.2019, 09:26 3
Цитата Сообщение от solop sergei Посмотреть сообщение
Дан файл квадратных матриц
Файл текстовый или типизированный?
0
0 / 0 / 1
Регистрация: 12.12.2015
Сообщений: 60
05.02.2019, 21:19  [ТС] 4
Цитата Сообщение от Puporev Посмотреть сообщение
Файл текстовый или типизированный?
Любой но рекомендуется пользоваться средствами прямого доступа к записям файла.
0
Модератор
64056 / 47472 / 32727
Регистрация: 18.05.2008
Сообщений: 115,185
06.02.2019, 09:54 5
Лучший ответ Сообщение было отмечено solop sergei как решение

Решение

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
const n=3;
type mtr=array[1..n,1..n] of integer;
var f:file of mtr;
    a:mtr;
    m,i,j,k,t:integer;
begin
repeat
write('Сколько матриц записать в файл от 2 до 10 m=');
readln(m);
until m in [2..10];
//создадим типизированный файл=файл прямого доступа  из матриц
assign(f,'matrix');
rewrite(f);
writeln('Введите элементы ',m,' симетричных и не симметричных матриц');
for k:=1 to m do
 begin
  writeln('Матрица ',k);
  for i:=1 to n do
  for j:=1 to n do
  readln(a[i,j]);
  write(f,a);
 end;
 //прочитаем файл, заменим несимметрицные матрицы на транспонированные
writeln('Содержание исходного файла');
reset(f);
for k:=0 to filesize(f)-1 do
 begin
  read(f,a);//читаем матрицу
  writeln('Матрица ',k+1);
  for i:=1 to n do //выводим на экран
   begin
    for j:=1 to n do
    write(a[i,j]:4);
    writeln;
   end;
  t:=0; //пусть она симметричная
  i:=2; //проверим симметрию элементов
  while(i<=n)and(t=0) do //все строки от 2 до n
   begin
    j:=1; //идем по строке пока симметричная
    while(j<i)and(t=0)do
    if a[i,j]<>a[j,i] then inc(t)//если элементы не симметричны, меняем значение t
    else inc(j);//иначе вперед
    if t=0 then inc(i);//если пока симметрично, на следующую строку
    if t=1 then //если матрица не симметрична
     begin
      //транспонируем ее
      for i:=2 to n do
      for j:=1 to i-1 do
       begin
        t:=a[i,j];
        a[i,j]:=a[j,i];
        a[j,i]:=t;
       end;
      //пишем на то же место
      seek(f,k);
      write(f,a);
     end;
    end;
   end;
writeln('Содержание измененного файла');
reset(f);
for k:=0 to filesize(f)-1 do
 begin
  read(f,a);
  writeln('Матрица ',k+1);
  for i:=1 to n do
   begin
    for j:=1 to n do
    write(a[i,j]:4);
    writeln;
   end;
 end;
close(f);
end.
1
0 / 0 / 1
Регистрация: 12.12.2015
Сообщений: 60
06.02.2019, 22:34  [ТС] 6
Спасибо все работает
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5773 / 3473 / 2454
Регистрация: 22.11.2013
Сообщений: 9,778
Записей в блоге: 1
07.02.2019, 15:43 7
Если рассматривать симметрию только по главной диагонали, проверку на симметричность можно просто выкинуть и транспонировать все подряд — симметричные от этого не изменятся.
А вот если другие виды симметрии проверять, тогда да, проверка нужна.
0
Модератор
64056 / 47472 / 32727
Регистрация: 18.05.2008
Сообщений: 115,185
07.02.2019, 15:50 8
Да, ты прав, я когда писал задумался было, но что-то заклинило и плюнул. А симметричная если другое не указано это транспонированная.
Из ВИКИ
Симметричной (Симметрической) называют квадратную матрицу, элементы которой симметричны относительно главной диагонали. Более формально, симметричной называют такую матрицу
https://www.cyberforum.ru/cgi-bin/latex.cgi?{\displaystyle \forall i,j:a_{ij}=a_{ji}} \forall i,j:a_{{ij}}=a_{{ji}}.
Это означает, что она равна её транспонированной матрице:
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2019, 15:50

Преобразовать строку, заменив каждую точку многоточием
- Дана строка символов. Преобразовать ее, заменив каждую точку многоточием (т.е. тремя точками). ...

Преобразовать строку, заменив каждую точку многоточием
Помогите решыть. Данна строка символов. Преобразовать срока, заменить каждую точку многоточие (т.е....

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

Преобразовать строку, заменив в ней каждую точку многоточием
1. Дана строка символов. Преобразовать строку, заменив в ней каждую точку многоточием.

Преобразовать данную строку заменив каждую точку многоточием
1.Даны натуральное число n и символы S1, …, Sn (строка). Преобразовать данную строку, заменив в ней...

Преобразовать строку, заменив в ней каждую точку многоточием
Всем привет,очень прошу помощи строками в паскале.. Дано строку символов S . Преобразовать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.