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

Процедуры с матрицами

12.12.2014, 21:09. Показов 2698. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Кто подскажет, как вместо ввода с клавиатуры сделать ввод через рандом?
Заранее спасибо

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
uses crt;
type matr=array [1..20,1..20]of real;
procedure vvod(var s:matr;var n,m:byte;c:char);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  Writeln('введите ',i,' рядок : ');
  for j:=1 to m do
  Read(s[i,j]);
  readln;
 end;
clrscr;
end;
 
procedure Summ(a,b:matr;n,m:byte; var sm:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
sm[i,j]:=a[i,j]+b[i,j];
end;
 
procedure Vyvod(var sm:matr;n,m:byte;c:string);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do
  write(sm[i,j]:5:1);
  writeln;
 end;
end;
 
procedure Ymn(a,b:matr;n,m:byte; var ym:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
ym[i,j]:=a[i,j]*b[i,j];
end;
 
procedure Vyvod1(var ym:matr;n,m:byte;c:string);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do
  write(ym[i,j]:5:1);
  writeln;
 end;
end;
 
var sm,a,b,ym:matr;
    x,m,n,i,j:byte;
begin
clrscr;
writeln ('кол-во рядков : =>');readln(n);
writeln ('кол-во столбчов  : =>') ;  readln(m);
Vvod(a,n,m,'A');
Vvod(b,n,m,'B');
Vyvod(a,n,m,'A');
Vyvod(b,n,m,'B');
Summ(a,b,n,m,sm);
Vyvod(sm,n,m,'S=A+B');
Ymn(a,b,n,m,ym);
Vyvod1(ym,n,m,'S=A*B');
readln
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2014, 21:09
Ответы с готовыми решениями:

Функции и процедуры в работе с матрицами
Дано матрицу размером m * n. 1) написать функцию для нахождения максимального элемента в матрице. 2) написать функцию для нахождения...

Создать модуль в котором определены процедуры над матрицами 3x3:сложение и вычитание
unit matr; interface matrix:array of integer; procedure Add(a,b:matrix;var c:matrx); procedure Sub(a,b:matrix;var c:matrx); ...

Процедуры с матрицами
Даны натуральное число n и квадратная матрица порядка n действительных чисел, где n≤10. Вычислить сумму элементов побочной диагонали...

5
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.12.2014, 21:15
Например так.
Delphi
1
2
3
4
5
6
7
procedure vvod(var s:matr;var n,m:byte);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
s[i,j]:=-5+10*random;
end;
1
охотник
 Аватар для vint-81
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
12.12.2014, 21:24
так...
Кликните здесь для просмотра всего текста
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
uses crt;
type matr=array [1..20,1..20]of real;
procedure vvod(var s:matr;var n,m:byte;c:char);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do 
   begin 
    s[i,j]:=-random*random(5)+random(8);
    write(s[i,j]:6:2)
   end; 
  writeln
 end;
end;
 
procedure Summ(a,b:matr;n,m:byte; var sm:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
sm[i,j]:=a[i,j]+b[i,j];
end;
 
procedure Vyvod(var sm:matr;n,m:byte;c:string);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do
  write(sm[i,j]:6:2);
  writeln;
 end;
end;
 
procedure Ymn(a,b:matr;n,m:byte; var ym:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
ym[i,j]:=a[i,j]*b[i,j];
end;
 
procedure Vyvod1(var ym:matr;n,m:byte;c:string);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do
  write(ym[i,j]:6:2);
  writeln;
 end;
end;
 
var sm,a,b,ym:matr;
    x,m,n,i,j:byte;
begin
clrscr;
writeln ('кол-во рядков : =>');readln(n);
writeln ('кол-во столбчов  : =>') ;  readln(m);
Vvod(a,n,m,'A');
Vvod(b,n,m,'B');
Summ(a,b,n,m,sm);
Vyvod(sm,n,m,'S=A+B');
Ymn(a,b,n,m,ym);
Vyvod1(ym,n,m,'S=A*B');
readln
end.
1
3 / 3 / 1
Регистрация: 11.10.2014
Сообщений: 148
13.12.2014, 00:01  [ТС]
Спасибо огромное
А если надо будет посчитать среднеарифметическое двух массивов через процедуры?
Понятное дело, что сначала сумму найти всех элементов двух массивов, а потом поделить на количество всех элементов, но Паскаль ругается на все варианты этой процедуры.
Помогите, пожалуйста.
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
13.12.2014, 10:19
на все варианты этой процедуры
А где ваша процедура-то? Выкладывайте, проверим.
0
3 / 3 / 1
Регистрация: 11.10.2014
Сообщений: 148
13.12.2014, 22:29  [ТС]
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
uses crt;
type matr=array [1..20,1..20]of real;
procedure vvod(var s:matr;var n,m:byte;c:char);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do 
   begin 
    s[i,j]:=-15+random(31);
    write(s[i,j]:5)
   end; 
  writeln
 end;
end;
 
procedure Summ(a,b:matr;n,m:byte; var sm:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
sm[i,j]:=a[i,j]+b[i,j];
end;
 
procedure Vyvod(var sm:matr;n,m:byte;c:string);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do
  write(sm[i,j]:5);
  writeln;
 end;
end;
 
procedure Ymn(a,b:matr;n,m:byte; var ym:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
ym[i,j]:=a[i,j]*b[i,j];
end;
 
procedure Vyvod1(var ym:matr;n,m:byte;c:string);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to m do
  write(ym[i,j]:5);
  writeln;
 end;
end;
 
procedure Sred(a,b:matr;n,m:byte; var s:integer; var sr:real);
var i,j:byte;
s:=0;
begin
for i:=1 to n do
for j:=1 to m do
s:=a[i,j]+b[i,j]+s;
end;
sr:=s/200;
end;
 
 
 
var sm,a,b,ym:matr;
    x,m,n,i,j:byte;
    sr:real;
    s:integer;
begin
clrscr;
n:=10; m:=10;
Vvod(a,n,m,'A');
Vvod(b,n,m,'B');
Summ(a,b,n,m,sm);
Vyvod(sm,n,m,'S=A+B');
Ymn(a,b,n,m,ym);
Vyvod1(ym,n,m,'S=A*B');
Sred(a,b,n,m,s,sr,'Srednee =);
readln
end.

Например вот. Находим сумму всех элементов из двух матриц и делим на количество элементов (200).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2014, 22:29
Помогаю со студенческими работами здесь

Процедуры с матрицами (транспонирование, перестановка)
При запуске и выборе одной из процедур, только 1 нормально считает. На транспонирование выдает RunTime Error 201. Что не так в коде?:( ...

Нужны готовые процедуры для работы с матрицами
Господа форумчане не у кого из вас нет готовых процедур для работы с матрицами(умножение обращение и тд)?

Класс: Разработать класс для работы с матрицами(операции над матрицами)...
Добрый вечер, хочу попросить о помощи с отловом проблемы. Сама задача: разработать класс для работы с матрицами(операции над...

Почему delphi после окончания процедуры переходит в начало/середину процедуры?
Почему delphi после второго end; переходит к while, а в полной версии процедуры в ее середину? program hren; uses SysUtils,...

Функции и процедуры. При помощи процедуры записать слова задом наперед
Дана строка S, состоящая из не менее 5 слов. При помощи процедуры записать слова задом наперед. Порядок слов сохранить. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru