С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Maks-i
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 50
1

Матрица. Замена компонентов и вывод результирующей

11.02.2013, 09:03. Просмотров 321. Ответов 6
Метки нет (Все метки)

По заданию нужно заменить значения компонентов их абсолютными значениями в той области матрицы (выше или ниже главной диагонали) ,в которой сумма окажется меньшей. Если суммы будут равны, то оставить матрицу без изменения. С выводом полученной матрицы на экран.
Программу составил, только проблема : Выводится не вся матрица, а именно замененные значения.
Помогите исправить ошибку.
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
  program Zadanie3_Massiv;
uses crt;
const n=3;
      A:array[1..n,1..n] of real=((0.0,8.5,-1.3),(0.0,5.41,0.0),(9.0,-6.1,0.0));
var S1, S2: Real;
     i, j: Integer;
begin
Write('Исходная матрица');
WriteLn;
for i := 1 to n do
 begin
  for j := 1 to n do
  Write(A[i, j]: 6: 2);
  WriteLn
 end;
WriteLn;
begin
S1 := 0;
for i := 1 to n do
for j := 1 to n do
if i<j then
S1 := S1 + A[i, j];
S2 := 0;
end;
for i := 2 to n do
for j := 1 to i-1 do
S2 := S2 + A[i, j];
WriteLn('Сумма элементов, лежащих выше главной диагонали =', S1: 5: 1);
WriteLn('Сумма элементов, лежащих ниже главной диагонали =', S2: 5: 1);
WriteLn;
WriteLN('Результирующая матрица');
WriteLn;
IF S1=S2 THEN
for i := 1 to n do
 begin
  for j := 1 to n do
Write(A[i, j]: 6: 2);
WriteLN
END;
if S1>S2 THEN
for i := 2 to n do
 begin
  for j := 1 to i-1 do
Write(Abs(A[i, j]): 6: 2);
WriteLN;
end;
if S1<S2 THEN
for i := 1 to n-1 do
 begin
  for j :=2  to n do
Write(Abs(A[i, j]): 6: 2);
WriteLN;
end;
END.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 09:03
Ответы с готовыми решениями:

Матрица.замена
Дана целочисленная матрица размера 6x6. Заменить в данной матрице все...

матрица,мин значение,замена
В матрице размером n на m (1&lt;n,m&lt;10)(ввод n,m и матрицы с клавиатуры),найти...

матрица,мин значение,замена
В матрице размером n на m (1&lt;n,m&lt;10)(ввод n,m и матрицы с клавиатуры),найти...

Матрица: замена элементов, вставка и удаление строк / столбцов
дан двумерный массив размером 5*6, заполненный случайным образом 1. заменить...

Программа для ввода двух квадратных матриц, их перемножения и вывода результирующей
Очень срочно!Помогите пожалуйста написать программу на языке Паскаль: Напишите...

6
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
11.02.2013, 11:47 2
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
program Zadanie3_Massiv;
uses crt;
const n=3;
type mtr=array[1..n,1..n] of real;
const A:mtr=((0.0,8.5,-1.3),(0.0,5.41,0.0),(9.0,-6.1,0.0));
var  A1:mtr;
     S1, S2: Real;
     i, j: Integer;
begin
Writeln('Исходная матрица');
for i := 1 to n do
 begin
  for j := 1 to n do
  Write(A[i, j]: 6: 2);
  WriteLn
 end;
S1 := 0;
S2 := 0;
for i := 1 to n do
for j := 1 to n do
if i<j then S1 := S1 + A[i, j]
else if i>j then S2 := S2 + A[i, j];
WriteLn('Сумма элементов, лежащих выше главной диагонали =', S1: 5: 1);
WriteLn('Сумма элементов, лежащих ниже главной диагонали =', S2: 5: 1);
WriteLn;
WriteLN('Результирующая матрица');
A1:=A;
IF S1=S2 THEN
for i := 1 to n do
 begin
  for j := 1 to n do
  Write(A[i, j]: 6: 2);
  WriteLN
 end;
if S1>S2 THEN
for i := 1 to n do
 begin
  for j := 1 to n do
   begin
    if i<j then A1[i,j]:=abs(A[i,j]);
    write(A1[i,j]: 6: 2);
   end;
  WriteLN;
end;
if S1<S2 THEN
for i := 1 to n do
 begin
  for j := 1 to n do
   begin
    if i<j then A1[i,j]:=Abs(A[i, j]);
    write(A1[i,j]: 6: 2);
   end;
  WriteLN;
end;
END.
0
Maks-i
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 50
11.02.2013, 13:29  [ТС] 3
Уважаемый Puporev. Спасибо за ответ, но при данном решении выводится результат не соответствующий условию:
при S1>S2 должны замениться значения ниже главной диагонали,а при S1<S2 выше главной диагонали.
0
Изображения
 
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
11.02.2013, 13:32 4
Так измени, в чем проблема?
0
Maks-i
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 50
11.02.2013, 13:41  [ТС] 5
В данном случае по задачи S1>S2 и значит значения лежащие ниже главной диагонали 0,9,-6.1 должны поменяться на абсолютные. А мы видим из вложения выше значение, что значение -6.1 осталось без изменения
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
11.02.2013, 13:41 6
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if S1>S2 THEN
for i := 1 to n do
 begin
  for j := 1 to n do
   begin
    if i>j then A1[i,j]:=abs(A[i,j]);
    write(A1[i,j]: 6: 2);
   end;
  WriteLN;
end;
if S1<S2 THEN
for i := 1 to n do
 begin
  for j := 1 to n do
   begin
    if i<j then A1[i,j]:=Abs(A[i, j]);
    write(A1[i,j]: 6: 2);
   end;
  WriteLN;
end;
Супер сложно, стоило сопли размазывать.
1
Maks-i
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 50
11.02.2013, 13:49  [ТС] 7
Огромное СПАСИБО!!! Здорово выручил!! RESPECT
0
11.02.2013, 13:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2013, 13:49

Квадратная матрица, замена каждого элемента в диагонали суммой элементов строки и столбца
В заданной квадратной матрице A(K,K)(K&lt;10) заменить каждый элемент главной...

Если количество компонентов файла кратно 3, то вывести на экран все суммы каждых 3-х компонентов.
Программа запрашивает имя файла. Если количество компонентов файла кратно 3, то...

Записать в другой файл найбольшее значение первых 10 компонентов,потом - следующих десяти компонентов и т.д.
Ест условие задачи : Дан файл целых чисел.Записать в другой файл найбольшее...


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

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

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