Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
gadiy
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 5
#1

Сортировка и вычисление массива

26.03.2011, 21:54. Просмотров 413. Ответов 7
Метки нет (Все метки)

A[i,j] = -i/4+j/2
B[i,j] = A[i,j]+i/4-5*j
C[i,j] = (A[i,j]+B[i,j])*2
D=(C-B)*A

Задание
1) Найти произведение сумм элементов главной и побочной диагонали матрицы D
2) В матрице А отформатировать по убыванию столбец, содержащий максимальное количество положительных элементов.


Вопрос от меня:
- если можете помогите конечно же с первым заданием (но его я еще представляю как делать)
- не могу сделать сортировку, перепробывал кучу кода из нета, реакции ноль... плиз подскажите!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2011, 21:54
Ответы с готовыми решениями:

Сортировка массива целых чисел A(n) по убыванию(используя метод обменная сортировка)
Помогите написать программу для сортировки массива целых чисел A(n) по...

Вычисление суммы элементов массива, расположенных в конце массива
Вычисление суммы элементов массива, расположенных в конце массива, причем...

Сортировка одномерного массива методом «пузырька», выделение массивов из четных и нечетных чисел. Вычисление суммы нечетных чисел
Program Sortirovka; Uses Crt; Var a:array of integer; i,j,k,n,Sum :...

Вычисление элементов массива по формуле, Поиск максимального элемента массива
Подскажите, пожалуйста, что не так с решением Дано: Составить программу (с...

Одномерные массивы. Вставка, удаление элементов массива. Перестановка элементов массива. Сортировка массива методом пузырька
Помогите пожалуйста! Дан массив, состоящий из N букв латинского алфавита ...

7
nuHrBuH
253 / 253 / 150
Регистрация: 04.03.2011
Сообщений: 597
27.03.2011, 00:20 #2
1:
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
uses wincrt;
var
  x : array[1..10,1..10] of integer;
 
  i, j,
     n : byte;
 
  s, s1 : integer;
 
begin
  write('razmer : '); readln(n);
  writeln('massive ; ');
 
  for i:=1 to  n do
  for j:=1 to  n do
    read(x[i,j]);
 
  s1:=0;
   s:=0;
  for i:=1 to n do
  for j:=1 to n do
      if i=j
         then
            s := s + x[i,j]
         else
            if i + j = n + 1
               then
                  s1 := s1 + x[i,j];
 
  s := s * s1;
 
  writeln('s = ',s);
end.
Добавлено через 11 минут
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
56
57
58
59
60
61
62
63
64
65
66
uses wincrt;
var
  x : array[1..10,1..10] of integer;
  r,
  k1,k,
  j_,c,
  i, j,
  m, n : byte;
 
  s, s1 : integer;
 
begin
randomize;
  write('razmer : '); readln(m,n);
  writeln('massive ; ');
 
for i:=1 to m do
  begin
     for j:=1 to n do
        begin
           x[i,j] := random(10)-3;
           write(x[i,j],' ');
        end;
     writeln;
  end;
 
  s1:=0;
   s:=0;
  for j:=1 to n do
     begin
         k := 0;
         for i:=1 to m do
            if x[i,j] > 0
               then
                  inc(k);
         if k1 < k
            then
               begin
                   j_ := j;
                   k1 := k;
               end;
     end;
  c := m - 1 ;
 
  repeat
     for i:=1  to c do
        if x[i,j_] < x[i+1,j_]
           then
               begin
                         r := x[i,j_];
                   x[i,j_] := x[i+1,j_];
                 x[i+1,j_] := r;
               end;
     dec(c);
  until c < 1;
 
  writeln('nomer stolbca : ',j_);
  writeln('Massiv : ');
 
  for i:=1 to m do
    begin
       for j:=1 to n do
           write(x[i,j],' ');
       writeln;
    end;
end.
0
gadiy
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 5
27.03.2011, 00:55  [ТС] #3
Первый код вообще что делает???

Второй не сортирует, а выдает ошибку 215...
0
gadiy
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 5
28.03.2011, 08:42  [ТС] #4
неужели никого нет, кто может реально помочь???
0
Igor
4617 / 3376 / 353
Регистрация: 11.11.2010
Сообщений: 6,183
Записей в блоге: 2
28.03.2011, 08:57 #5
Цитата Сообщение от gadiy Посмотреть сообщение
A[i,j] = -i/4+j/2
B[i,j] = A[i,j]+i/4-5*j
C[i,j] = (A[i,j]+B[i,j])*2
D=(C-B)*A
это к чему?

Добавлено через 6 минут
Цитата Сообщение от gadiy Посмотреть сообщение
Первый код вообще что делает???
То что Вы просили, то и делает
0
gadiy
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 5
28.03.2011, 09:02  [ТС] #6
Это четыре матрицы, само условие задачи!!
А код приведенный выше выдает ошибку... как я уже и раньше писал! Да и вообще, где вы видите тут вычисления???
0
Puporev
Модератор
54393 / 41973 / 28989
Регистрация: 18.05.2008
Сообщений: 98,873
28.03.2011, 09:32 #7
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
102
uses crt;
const nmax=20;
var a,b,c,d:array[1..nmax,1..nmax] of real;
    n,i,j,p,jmx,k,mx:byte;
    s1,s2,pr,x:real;
begin
clrscr;
repeat
write('Размер матриц до ',nmax,' n=');
readln(n);
writeln('Исходные матрицы:');
until n in [1..nmax];
writeln('Матрица A:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a[i,j]:=-i/4+j/2;
     write(a[i,j]:8:2);
    end;
   writeln;
 end;
writeln;
writeln('Матрица B:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     b[i,j]:=a[i,j]+i/4-5*j;
     write(b[i,j]:8:2);
    end;
   writeln;
 end;
write('Нажмите Enter для продолжения:');
readln;
writeln('Матрица C=(A+B)^2:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     c[i,j]:=sqr(a[i,j]+b[i,j]);
     write(c[i,j]:8:2);
    end;
   writeln;
 end;
writeln;
for i:=1 to n do
for j:=1 to n do
c[i,j]:=c[i,j]-b[i,j];
for p:=1 to n do
for j:=1 to n do
   begin
     d[p,j]:=0;
     for i:=1 to n do
     d[p,j]:=d[p,j]+c[p,i]*a[i,j];
   end;
writeln('Матрица D=(C-B)*A:');
s1:=0;s2:=0;
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    write(c[i,j]:8:2);
    if j=i then s1:=s1+d[i,j];
    if j=n-i+1 then s2:=s2+d[i,j];
   end;
  writeln;
 end;
writeln('Сумма  главной диагонали=',s1:0:2);
writeln('Сумма побочной диагонали=',s2:0:2);
pr:=s1*s2;
writeln('Их произведение=',pr:0:2);
mx:=0;jmx:=0;
for j:=1 to n do
 begin
  k:=0;
  for i:=1 to n do
  if a[i,j]>0 then k:=k+1;
  if k>mx then
   begin
    mx:=k;
    jmx:=j;
   end;
 end;
for i:=1 to n-1 do
for p:=i+1 to n do
if a[i,jmx]>a[p,jmx] then
 begin
  x:=a[i,jmx];
  a[i,jmx]:=a[p,jmx];
  a[p,jmx]:=x;
 end;
writeln('Максимальное количество положительных матрицы А в столбце ',jmx,'=',mx);
writeln('Сортировка этого столбца по возрастанию:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:8:2);
  writeln;
 end;
readln
end.
0
gadiy
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 5
28.03.2011, 20:47  [ТС] #8
Я Вам настолько благодарен... ну просто огромное спасибо!!!
Если что-то надо будет сделать по веб-програмингу или вопросы будут... то буду всегда рад помочь!!!
gadiy@mail.ru пишите!!!
0
28.03.2011, 20:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2011, 20:47

Сортировка массива. Упорядочить нечетные элементы массива по возрастанию методом обмена
Упорядочить одномерный массив по возрастанию, методом обмена. (по возрастанию...

Сортировка вставками «с конца массива» последовательным поиском с начала массива
Сортировка вставками «с конца массива» последовательным поиском с начала...

Сортировка массива вставками с конца массива
Дано натуральное число N (1&lt;=N&lt;=100), целочисленный линейный массив a0, a1, …,...


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

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

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