Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 01.03.2010
Сообщений: 7
1

Работа с массивами. Нужно подправить текст проги.

23.05.2010, 10:45. Показов 610. Ответов 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
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
103
104
105
106
107
108
109
110
program Shwarz_Kurs; 
const 
   n=50; {Число строк и столбцов} 
type 
   Matrix=array[1..n,1..n] of real; {Матрица} 
var 
   A:Matrix; 
   C:Matrix; 
   Sled:real; 
   i,j:integer; {Строки и столбцы} 
   k,l:integer; {Число строк и столбцов, вводимых нами} 
 
procedure BBOD_A(var AF:Matrix; var kf,lf:integer); 
 
var 
   i,j:integer; 
begin 
  writeln('Введите количество строк/столбцов(>0):'); 
  readln(kf); 
  lf:=kf; 
  if (kf<n) and (lf<n)then 
    begin 
      write('Введите элементы матрицы: '); 
      for i:=1 to kf do 
        begin 
          for j:=1 to lf do 
            begin 
              read(A[i,j]); 
            end; 
        end; 
    end 
  else 
    writeln('Введены неверные данные'); 
end; 
 
procedure BblBOD_A(A:Matrix; k,l:integer); 
 
var 
   i,j:integer; 
begin 
  for i:=1 to k do 
    begin 
      writeln;
      for j:=1 to l do 
        begin 
          write(A[i,j]:3:2,' '); 
        end; 
    end;
    writeln; 
end; 
 
procedure AminusE(A:Matrix); {Вычитаем единичную матрицу} 
 
var 
   p:integer; 
begin 
  writeln;
  writeln('Введите p равное кол-ву строк/столбцов при вводе матрицы:'); 
  readln(p); 
  for i:=1 to p do 
    begin 
      writeln;
      for j:=1 to p do 
        begin 
          if (i=j) then 
            A[i,j]:=A[i,j]-1; 
          write(A[i,j]:3:2,' ') 
        end; 
    end; 
end; 
 
procedure Diag_C(var C:Matrix; A:Matrix); {Cумма элементов столбцов и получение диагональной матрицы} 
 
var 
   i, j: integer; 
   s:real; 
begin 
  for i:=1 to n do 
    for j:=1 to n do 
      C[i,j]:=0; 
  for i:=1 to n do 
    begin 
      s:=0; 
      for j:=1 to n do 
        s:=(s+A[j,i]); 
      C[i,i]:=s; 
    end; 
  writeln(C[i,j]:3:2) 
end; 
 
function Sled_C(C:Matrix):real; {Cумма элементов на главной диагонали(след)} 
 
var 
   i: integer; 
   s:real; 
begin 
  s:=0; 
  for i:=1 to n do 
    s:=s+C[i,i]; 
  Sled_C:=s; 
end; 
 
begin 
  BBOD_A(A,k,l); 
  BblBOD_A(A,k,l); 
  AminusE(A); 
  Diag_C(C,A); 
  Sled:=Sled_C(C); 
  writeln('След матрицы С= ',Sled) 
end.
Добавлено через 14 минут
"Выполнить над квадратной матрицей А порядка n последовательность следующих действий:
а). вычесть из матрицы А единичную матрицу.
б). сформировать диагональную матрицу С из элементов, которые определяются как суммы элементов столбцов полученной матрицы.
в). найти след матрицы С."

собственно, косяк начинается со второго пункта, где надо сформировать диагональную матрицу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2010, 10:45
Ответы с готовыми решениями:

2 проги с массивами, 1 график.
1. Дан двумерный массив Y. Определить имеется ли в массиве элементы со значениями, содержащими...

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

Подправить текст
http://skololit.ru/price/ - вот страничка Надо верстку подправить.... Там где текст идет - у...

Текст проги
Ребят, подскажите в чём ошибка: Квадраты некоторых трехзначных чисел оканчиваются тремя цифрами,...

1
0 / 0 / 2
Регистрация: 01.03.2010
Сообщений: 7
24.05.2010, 23:14  [ТС] 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
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
program Shwarz_Kurs; 
 
const 
   n=50; {Число строк и столбцов} 
type 
   Matrix=array[1..n,1..n] of real; {Матрица} 
var 
   A:Matrix; 
   C:Matrix; 
   Sled:real; 
   i,j:integer; {Строки и столбцы} 
   k,l:integer; {Число строк и столбцов, вводимых нами} 
 
procedure BBOD_A(var AF:Matrix; var kf,lf:integer); 
 
var 
   i,j:integer; 
begin 
  writeln('Введите количество строк/столбцов(>0):'); 
  readln(kf); 
  lf:=kf; 
  if (kf<n) and (lf<n)then 
    begin 
      writeln; 
      write('Введите элементы матрицы: '); 
      for i:=1 to kf do 
        begin 
          for j:=1 to lf do 
            begin 
              read(A[i,j]); 
            end; 
        end; 
    end 
  else 
    writeln('Введены неверные данные');
    
end; 
 
procedure BblBOD_A(A:Matrix; k,l:integer); 
 
var 
   i,j:integer; 
begin 
  for i:=1 to k do 
    begin 
      writeln; 
      for j:=1 to l do 
        begin 
          write(A[i,j]:3:2,' '); 
        end; 
    end; 
  writeln; 
end; 
 
procedure AminusE(var A:Matrix); 
{Вычитаем единичную матрицу} 
 
var 
   p:integer; 
begin 
  writeln; 
  writeln('Введите p равное кол-ву строк/столбцов при вводе матрицы:'); 
  readln(p); 
  for i:=1 to p do 
    begin 
      writeln; 
      for j:=1 to p do 
        begin 
          if (i=j) then 
            A[i,j]:=A[i,j]-1; 
          write(A[i,j]:3:2,' ') 
        end; 
    end; 
end; 
 
procedure Diag_C(var C:matrix; A:matrix; k:integer); {Построение диагональной матрицы}
 
var 
   i,j,s:integer; 
begin 
  writeln;
  for i:=1 to k do 
    for j:=1 to k do 
      C[i,j]:=0; 
  for i:=1 to k do 
    begin 
      for j:=1 to k do 
        begin 
          C[i,i]:=C[i,i]+A[j,i]; 
        end; 
      writeln; 
    end; 
  for i:=1 to k do 
    begin 
      for j:=1 to k do 
        begin 
          write(C[i,j]:3:2, ' '); 
        end;
        writeln; 
    end;
      
end; 
 
function Sled_C(C:Matrix):real; {Cумма элементов на главной диагонали(след)} 
 
var 
   i: integer; 
   s:real; 
begin 
  writeln;
  s:=0; 
  for i:=1 to n do 
    s:=s+C[i,i]; 
  Sled_C:=s;
   
end; 
 
begin 
  BBOD_A(A,k,l); 
  BblBOD_A(A,k,l); 
  AminusE(A); 
  Diag_C(C,A,k); 
  Sled:=Sled_C(C); 
  writeln('След матрицы С=',Sled:3:2);
end.
Добавлено через 5 минут
не спорю, можно лучше и короче, но что смог.
других версий и поправок увидеть не удалось.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2010, 23:14

нужно подправить
нужно изменить этот код так ,что бы программа смогла &quot;выжить&quot; в разных ситуациях 1 если...

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

Нужно подправить программу
Нужно чтобы программа выводила сообщение &quot;такого элемента нет&quot; если указанной цифры нет в массиве....

Нужно подправить 3D модель
Всем привет! Ситуация такая: заказал нарисовать чертёж рамки, сделали, я приехал примерил...


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

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

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