Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal ABC

Войти
Регистрация
Восстановить пароль
 
Maks-i
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 50
#1

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

11.02.2013, 09:03. Просмотров 312. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Матрица. Замена компонентов и вывод результирующей (Pascal ABC):

Матрица.замена - Pascal
Дана целочисленная матрица размера 6x6. Заменить в данной матрице все положительные элементы первого столбца числом 1. вот что...

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

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

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

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

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

6
Puporev
Модератор
54035 / 41668 / 14742
Регистрация: 18.05.2008
Сообщений: 97,979
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
Модератор
54035 / 41668 / 14742
Регистрация: 18.05.2008
Сообщений: 97,979
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
Модератор
54035 / 41668 / 14742
Регистрация: 18.05.2008
Сообщений: 97,979
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
Привет! Вот еще темы с ответами:

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

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

Матрица вывод - Pascal
Вывод матрицы следующим образом: 1 10 17 22 25 2 11 18 23 24 3 12 19 20 21 4 13 14 15 16 5 6 7 8 9 При n=5;

Замена скобок и вывод части строки - Pascal ABC
Составьте алгоритм и программу обработки введенной с клавиатуры строки в соответствии с вариантом задания с использованием стандартных...


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

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

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