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

Как сложить два массива с разными индексами

04.04.2018, 21:32. Показов 1959. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте, как сложить два массива? Один динам. начинается индекс с 0 и до 3, а другой статический из файла с индексом от 1 до 4. Делать большие вложения циклов? Процедура ,mSum

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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
program lr5;
 
type
  TMatrix = array of array of real;
  stat = array [1..4, 1..4] of real;
 
var
  matrixC: TMatrix;
  matrixD, r: stat;
  m, n: byte;
  x: real;
 
 
function GetMatrix(n: byte): stat;
var
  m: stat;
  f: Text;
  s: String;
  row, col: byte;
begin
  row := 0; col := 0;
  Assign(f, 'matrix.txt'); Reset(f);
  while not EOF(f) and (n > 0) do
  begin
    if row = 0 then
    begin ReadLn(f, s); inc(row); end
      else
    begin
      inc(col); Read(f, m[row, col]);
      if col = 4 then
      begin
        ReadLn(f); col := 0; inc(row);
        if row > 4 then
        begin row := 0; dec(n); end;
      end;
    end;
  end;
  Close(f);
  GetMatrix := m;
end;
 
function mMinURC(const c: TMatrix; var m, n: byte): Real;//Мин. элемент над главной диагональю
var
  min: Real;
begin
  min := c[0, 1];
  for var i := 0 to m - 2 do 
  begin
    for var j := i + 1 to n - 1 do 
      if min > c[i, j] then
      begin
        min := c[i, j];
      end;
  end;
  mMinURC := min;
end;
 
function mMinURD(const d: stat; m, n: byte): Real;//Мин. элемент над главной диагональю
var
  min: Real;
begin
  min := d[1, 2];
  for var i := 1 to m do 
  begin
    for var j := 1 to n do 
      if min > d[i, j] then
      begin
        min := d[i, j];
      end;
  end;
  mMinURD := min;
end;
 
procedure mSum(const c: TMatrix; const d: stat; var sum: stat; var m, n: byte);//Сложение матриц
begin
  
  for var i := 1 to m do 
    for var j := 1 to n do
      sum[i, j] := c[i, j] + d[i, j];
end;
 
begin
  
  writeln('Введите кол. строк');
  read(m);
  writeln('Введите кол. столбцов');
  read(n);
  SetLength(matrixC, m);
  for var i: byte := 0 to m - 1 do
  begin
    SetLength(matrixC[i], n);
  end;
  
  
  for var i: byte := 0 to m - 1 do
  begin
    for var j: byte := 0 to n - 1 do
    begin
      x := 0;
      write('Значение для элемента[', i, '][', j, '] = ');
      read(x);
      matrixC[i][j] := x;
    end;
  end;
  
  writeln;
  
  writeln('Матрица C =');
  for var i: byte := 0 to m - 1 do
  begin
    for var j: byte := 0 to n - 1 do
    begin
      write('', matrixC[i][j]:12:3);
    end;
    writeln;
  end;
  
  writeln;
  
  matrixD := GetMatrix(4); 
  WriteLn('Матрица D =');
  for var row: byte := 1 to 4 do
  begin
    for var col: byte := 1 to 4 do Write(matrixD[row, col]:12:3);
    WriteLn;
  end;
  
  writeln;
  
  mSum(matrixC, matrixD, r, m, n);
  WriteLn('Min над главной диагональю матрицы C: ', mMinURC(matrixC, m, n):0:3);
  WriteLn('Min над главной диагональю матрицы D: ', mMinURD(matrixD, 1, 4):0:3);
  {
  WriteLn('Результаты сохранены в файл "result.txt"');
  Assign(output, 'result.txt'); Rewrite(output);
  mWrite('C+D =', r, m, n);
  WriteLn('Min над главной диагональю: ', mMinUR(r, m, n):0:WD);
  Close(output);}
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.04.2018, 21:32
Ответы с готовыми решениями:

Сформировать два массива, включая в первый четные элементы исходного массива с нечетными индексами, а во второй нечетные элементы с четными индексами
Задан массив размером K. Сформировать два массива, включая в первый четные элементы исходного массива с нечетными индексами, а во второй...

Сложить два массива
Всем доброго времени суток, срочно нужна помощь. Надо сделать программу в Паскале, а я не совсем шарю... В общем вот. Написать...

Как сложить два числа в паскале
Как сложить два числа в паскале? Я работаю в паскале в первый день, даже не могу складывать ((((

3
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
04.04.2018, 22:03
Лучший ответ Сообщение было отмечено koks_ikkkk как решение

Решение

Сделайте статический массив с индексами [0..3,0..3].
Если нет, то:
Pascal
1
2
3
  for i:=0 to 3 do
    for j:=0 to 3 do
      r[i,j]:=a[i,j]+b[i+1,j+1];
или
Pascal
1
2
3
  for i:=1 to 4 do
    for j:=1 to 4 do
      r[i-1,j-1]:=a[i-1,j-1]+b[i,j];
1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
04.04.2018, 23:00  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
program lr5;
 
type
  TMatrix = array of array of real;
  stat = array [1..4, 1..4] of real;
 
var
  matrixC, r: TMatrix;
  matrixD: stat;
  m, n: byte;
  x: real;
Pascal
1
2
3
4
5
6
procedure mSum(const c: TMatrix; const d: stat; var sum: TMatrix; var m, n: byte);//Сложение матриц
begin
  for var i := 0 to 3 do 
    for var j := 0 to 3 do
      sum[i, j] := c[i, j] + d[i+1, j+1];
end;
Выводит ошибку program.pas(78) : Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
05.04.2018, 08:16
Правильно выводит. К элементам TMatrix можно обращаться по [I,j] вместо [I][j]?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2018, 08:16
Помогаю со студенческими работами здесь

Сложить два массива в третий
Сумма двух одномерных массивов. должен получиться 3 массив. но сумма не простая а например если в первом массиве 4 элемента а во втором 6...

Сложить два массива в третий
Написать программу. Даны два одномерных числовых массива А и В размерности n.Заполнить массив С=А+В.

Поэлементно сложить два массива размерностью [1..5]
Поэлементно сложить два массива размерностью

Сформировать два массива, включив в первый элементы с четными индексами, во второй - с нечетными
Создать массив, сделать блок схему 25. Дан массив размерностью 10 из целых чисел. Сформировать два массива размерностью 5, включив в...

Сформировать два массива, включив в первый элементы исходного с четными индексами, а во второй - с нечетными
дан массив из 20 элементов. Сформировать два массива размером 10,включив в первый из них элементы заданного массива с четными индексами,а...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера . . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru