0 / 0 / 0
Регистрация: 28.02.2023
Сообщений: 22
1

Исправить код вычисления элементов одномерного массива

27.03.2023, 14:20. Показов 346. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
var a:array[1..15,1..15] of real;
    x,с:array[1..15] of real;
    n,m,i,j,k:integer;
    s,s1:real;
begin
writeln('Введите количество строк и столбцов от 2 до 15');
readln(n,m);
writeln('Матрица А');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=9*random;
    write(a[i,j]:5:2);
   end;
  writeln;
 end;
 writeln('Матрица B');
for i:=1 to n do
 begin
  for k:=1 to m do
   begin
    a[i,k]:=9*random;
    write(a[i,k]:5:2);
   end;
  writeln;
 end;
  writeln('Матрица D');
for k:=1 to n do
 begin
  for i:=1 to m do
   begin
    a[k,i]:=9*random;
    write(a[k,i]:5:2);
   end;
  writeln;
 end;
s1:=0;
for i:=1 to n do
begin
  s1:=s1+sqr(a[i,k])*sin(a[k,i]);
end;
s:=0;
for i:=1 to n do
for j:=1 to m do
s:=s+cos(sqr(a[i,j]));
writeln('Массив В');
for k:=1 to n do
 begin
  с[k]:=s1/s;
  write(с[k]:5:2,' ');
 end;
end.
Миниатюры
Исправить код вычисления элементов одномерного массива  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2023, 14:20
Ответы с готовыми решениями:

вычисления суммы повторяющихся элементов одномерного массива
Помогите пожалуйста с программой вычисления суммы повторяющихся элементов одномерного массива, сама...

Составьте программу вычисления суммы элементов одномерного массива
Составьте программу вычисления суммы элементов одномерного массива А(N), встречающихся в этом...

Составьте программу вычисления суммы тех элементов одномерного массива A(N), что расположены перед первым нулевым элементом данного массива.
Составьте программу вычисления суммы тех элементов одномерного массива A(N), что расположены перед...

Вычисление элементов одномерного массива по формуле. Как исправить программу?
Составить программу для вычисления элементов одномерного массива по формуле:...

Составить программу для вычисления элементов одномерного массива
Составить программу для вычисления элементов одномерного массива:

3
440 / 369 / 132
Регистрация: 09.09.2011
Сообщений: 1,337
29.03.2023, 13:26 2
код треш. его нельзя исправить. только выкинуть.

невозможно поверить чтобы его кто-то писал осмысленно, скорее понадерган из разных программ. к задаче не имеет никакого отношения.
0
440 / 369 / 132
Регистрация: 09.09.2011
Сообщений: 1,337
29.03.2023, 17:16 3
тут код для freepascal (используется несколько "фич" object free pascal):
Кликните здесь для просмотра всего текста
Delphi
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
program make_vector_c;
{https://www.cyberforum.ru/pascal/thread3092812.html}
 
{$mode objfpc}{$H+}
 
uses math;
 
type
  TVectorC = array of double;
  TMatrixA = array of array of double;
 
function getDemension( ): Integer;
begin
  {запросить у пользователя, или прочитать из файла размерность.
  размерность должна быть > 0, но не слишком большой, чтобы
  можно было отобразить на экране}
  Result:= 10;
end;
 
function getMatrixA(const dem: integer): TMatrixA;
var
  i, j : integer;
begin
  SetLength(Result, dem, dem);
  {запросить у пользователя значения матрицы A или прочитать из файла}
  Randomize;
  for i:= 0 to pred(dem) do
      for j:= 0 to pred(dem) do begin
          Result[i,j]:= Random * 100 * RandomFrom([1.0, -1.0]);
      end;
end;
 
function calculateVectorC(const a: TMatrixA): TVectorC;
var
  i, j, k, n : integer;
  devider, devidend: double;
begin
  n:= Length(a[0]);
  SetLength(Result, n);
  {знаминатель формулы (делитель) не зависит от порядкового номера элемента
   вектора по этому рассчитываем его один раз}
  devider:= 0.0; //делитель
  for i:= 0 to pred(n) do
      for j:= 0 to pred(n) do
          devider += cos(sqr(a[i,j]));
 
  devidend:= 0.0; // делимое
  for k:= 0 to pred(n) do begin
 
      for i:= 0 to pred(n) do
          devidend += sqr(a[i,k]) * sin(a[k,i]);
 
      Result[k]:= devidend / devider;
  end;
end;
 
procedure printVectorC(const v: TVectorC);
var
  value: Double;
begin
  write(' C = [ ');
  for value in v do
      write(value:6:2, ' ');
  writeln(']');
end;
 
procedure printMatrixA(const m: TMatrixA);
var
  i, j, n: integer;
begin
  n:= Length(m[0]);
  for i:= 0 to pred(n) do begin
    for j:= 0 to pred(n) do
        write(m[i, j]:6:2, ' ');
    writeln;
  end;
end;
 
var
  demension: Integer; //размерность матрицы/вектора
  vectorC:   TVectorC = nil; //вектор  C
  matrixA:   TMatrixA = nil; //матрица A
 
begin
  //получить размерность матрицы/вектора
  demension:= getDemension();
  //получить матрицу
  matrixA:= getMatrixA(demension);
  //вычислить вектор
  vectorC:= calculateVectorC(matrixA);
  //вывести на экран матрицу
  printMatrixA(matrixA);
  //вывести на экран вектор
  writeln;
  printVectorC(vectorC);
 
  readln;
end.
Миниатюры
Исправить код вычисления элементов одномерного массива  
0
440 / 369 / 132
Регистрация: 09.09.2011
Сообщений: 1,337
30.03.2023, 00:37 4
так тут ошибка в коде, в процедуре calculateVectorC

нужно ее исправить так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function calculateVectorC(const a: TMatrixA): TVectorC;
var
  i, j, k, n : integer;
  devider, devidend: double;
begin
  n:= Length(a[0]);
  SetLength(Result, n);
  {знаминатель формулы (делитель) не зависит от порядкового номера элемента
   вектора по этому рассчитываем его один раз}
  devider:= 0.0; //делитель
  for i:= 0 to pred(n) do
      for j:= 0 to pred(n) do
          devider += cos(sqr(a[i,j]));
 
  
  for k:= 0 to pred(n) do begin
      devidend:= 0.0; // делимое   // <-------  внутрь цикла нужно обнуление перенести
      for i:= 0 to pred(n) do
          devidend += sqr(a[i,k]) * sin(a[k,i]);
 
      Result[k]:= devidend / devider;
  end;
end;
а то числитель от предыдущего шага прибавляется к текущему
0
30.03.2023, 00:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2023, 00:37
Помогаю со студенческими работами здесь

Составьте программу вычисления суммы элементов одномерного массива
Составьте программу вычисления суммы элементов одномерного массива A(N), встречающихся в этом...

Как написать код программы для вычисления суммы номеров второго и третьего элементов одномерного массива в с++?
Помогите, пожалуйста, как написать данный код в с++? Я в программировании ноль, только начал, а...

Составить схему алгоритма и проект программы для вычисления элементов одномерного массива из 15 элементов
Составить схему алгоритма и проект программы для вычисления элементов одномерного массива из 15...

Вычисления элементов одномерного массива по заданной
Составить программу для вычисления элементов одномерного массива по заданной &lt;ссылка вырезана&gt;

Составьте программу вычисления суммы элементов одномерного массива
Составьте программу вычисления суммы элементов одномерного массива A(N), встречающихся в этом...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru