Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 12
1

Даны 2 матрицы, проверить есть ли одинаковые столбцы,если есть то посчитать их сумму.

05.07.2011, 20:53. Показов 2324. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны 2 матрицы, проверить есть ли одинаковые столбцы,если есть то посчитать их сумму.


uses crt;
const nmax=10; //ограничим макс. размер матриц
//для удобства объявим матрицу так
type mas=array[1..nmax] of integer;//массив=столбец матрицы
matr=array[1..nmax] of mas; //матрица=мвссив столбцов
var m,n:byte ; //размеры матриц - глобальные переменные
procedure Vvod(var a:matr;c:char);//ввод элементов матриц
var i,j:byte;
begin
writeln('Введите матрицу ',c,' по столбцам:');
for j:=1 to n do
begin
writeln('Столбец ',j);
for i:=1 to m do
begin
write('el[',i,']=');
readln(a[j][i]);
end;
end;
clrscr;
end;
procedure Vyvod(var a:matr;c:char); //вывод матриц на экран
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to m do
begin
for j:=1 to n do
write(a[j][i]:4);//выводим транспонированно, по строкам(в обычном виде)
writeln;
end;
writeln;
end;
function Ravn(a,b:mas):boolean; //определение идентичности массивов-столбцов
var i,j:byte;
f:boolean;
begin
f:=true;
i:=1;
while (i<=m)and f do
if b[i]<>a[i] then f:=false
else i:=i+1;
Ravn:=f;
end;
var a,b:matr;
i,j,ka,kb:byte;
s:integer;
begin
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
Vvod(a,'A');
Vvod(b,'B');
Vyvod(a,'A');
Vyvod(b,'B');
i:=1; //ищем одинаковые столбцы
ka:=0;kb:=0;
while(i<=n) and (ka=0) do
begin
j:=1;
while(j<=n) and (ka=0) do
if Ravn(a[i],b[j]) then
begin
ka:=i; //их номера в матрицах
kb:=j;
end
else j:=j+1;
if ka=0 then i:=i+1;
end;
if ka=0 then write('Одинаковых столбцов нет')
else
begin
writeln('Одинаковые столбцы №',ka,' в матрице А и №',kb,' в матрице В');
s:=0;
for i:=1 to m do
s:=s+a[ka][i];
writeln('Сумма в каждом из них=',s);
end;
end.







Помогите пожалуйста разобраться в задаче.
writeln('Введите матрицу ',c,' по столбцам:'); что такое С
clrscr; что означает ета операция
write(a[j][i]:4); почему здесь 4,ичто ето значит
function Ravn(a,b:mas):boolean; что такое a,b
while (i<=m)and f do
if b[i]<>a[i] then f:=false
else i:=i+1;
Ravn:=f; что мы здесь находим
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2011, 20:53
Ответы с готовыми решениями:

Дан массив А из 10 элементов. Проверить, есть ли в нем элементы, равные нулю. Если есть, найдите номер первого из них
Дан массив А из 10 элементов. Проверить, есть ли в нем элементы, равные нулю. Если есть, найдите...

Даны две матрицы.Есть ли в них одинаковые столбцы?
Pascal.Даны две матрицы.Есть ли в них одинаковые столбцы?Очень надо для зачета.Помогите...

Проверить, есть ли в одномерном массиве X, A(n) и B(n) одинаковые элементы, если есть, то найти среди них наибольший
Проверить, есть ли в одномерном массиве X, A(n) и B(n) одинаковые элементы, если есть, то найти...

Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму
Проблема с заданием. Дан одномерный массив. Узнать, есть ли среди них элементы с нечетными...

3
53 / 53 / 36
Регистрация: 18.02.2011
Сообщений: 146
05.07.2011, 22:48 2
Цитата Сообщение от nak3d Посмотреть сообщение
Помогите пожалуйста разобраться в задаче.
writeln('Введите матрицу ',c,' по столбцам:'); что такое С
clrscr; что означает ета операция
write(a[j][i]:4); почему здесь 4,ичто ето значит
function Ravn(a,b:mas):boolean; что такое a,b
while (i<=m)and f do
if b[i]<>a[i] then f:=false
else i:=i+1;
Ravn:=f; что мы здесь находим
Pascal
1
2
3
4
5
6
7
8
 writeln('Введите матрицу ',c,' по столбцам:'); что такое С {Название матрицы}
 clrscr; что означает ета операция {происходит очистка экрана}
 write(a[j][i]:4); почему здесь 4,ичто ето значит{каждый элемент выводится через 4 знака }
 function Ravn(a,b:mas):boolean; что такое a,b {a,b столбцы матрицы которые сравнюются }
 while (i<=m)and f do
 if b[i]<>a[i] then f:=false
 else i:=i+1;
 Ravn:=f; что мы здесь находим {функция которая сравнивает столбцы и возращает логической переменной true в случае идентичности либо  false в противном случае}
1
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 12
05.07.2011, 23:18  [ТС] 3
если не трудно распиши остальные неоткоментированые строчки...кроме самых елементарных)
0
53 / 53 / 36
Регистрация: 18.02.2011
Сообщений: 146
05.07.2011, 23:57 4
Цитата Сообщение от nak3d Посмотреть сообщение
если не трудно распиши остальные неоткоментированые строчки...кроме самых елементарных)
всей программы?

Добавлено через 26 минут
Цитата Сообщение от nak3d Посмотреть сообщение
если не трудно распиши остальные неоткоментированые строчки...кроме самых елементарных)
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
uses crt;
 const nmax=10; //ограничим макс. размер матриц
 //для удобства объявим матрицу так
 type mas=array[1..nmax] of integer;//массив=столбец матрицы
 matr=array[1..nmax] of mas; //матрица=мвссив столбцов
 var m,n:byte ; //размеры матриц - глобальные переменные
 procedure Vvod(var a:matr;c:char);//ввод элементов матриц
 var i,j:byte;
 begin
 writeln('Введите матрицу ',c,' по столбцам:');
 for j:=1 to n do
 begin
 writeln('Столбец ',j);
 for i:=1 to m do 
 begin
 write('el[',i,']=');{имена элементов}
 readln(a[j][i]);{заполняем матрицу по столбцам вручную}
 end;
 end;
 clrscr;
 end;
 procedure Vyvod(var a:matr;c:char); //вывод матриц на экран
 var i,j:byte;
 begin
 writeln('Матрица ',c);
 for i:=1 to m do
 begin
 for j:=1 to n do
 write(a[j][i]:4);//выводим транспонированно, по строкам(в обычном виде)
 writeln;
 end;
 writeln;
 end;
 function Ravn(a,b:mas):boolean; //определение идентичности массивов-столбцов
 var i,j:byte;
 f:boolean;
 begin
 f:=true;{установлюем по умолчанию в тру}
 i:=1;
 while (i<=m)and f do {пока i меньше количества строк и переменная f=true} 
 if b[i]<>a[i] then f:=false {если не ровны то переменной f=false  виходим с цикла иначе проверяем дальше}
 else i:=i+1;
 Ravn:=f; {возращаем значение ровны или не ровны столбцы true or false}
 end;
 var a,b:matr;
 i,j,ka,kb:byte;
 s:integer;
 begin
 repeat
 write('Количество строк до ',nmax,' m=');
 readln(m);
 until m in [1..nmax];
 repeat
 write('Количество столбцов до ',nmax,' n=');
 readln(n);
 until n in [1..nmax];
{више вводим количество строк и столбцов с проверкой чтобы не выскочить за пределы массивов}
 Vvod(a,'A');{тут все понятно:)}
 Vvod(b,'B');
 Vyvod(a,'A');
 Vyvod(b,'B');
 i:=1; //ищем одинаковые столбцы
 ka:=0;kb:=0;
 while(i<=n) and (ka=0) do {ЗДЕСЬ В ДВУХ ЦиКЛАХ ПРИ ПОМОЩИ ФУНКЦИИ ИЩЕМ СТОЛБЦЫ как одномерные массивы }
 begin
 j:=1;
 while(j<=n) and (ka=0) do
 if Ravn(a[i],b[j]) then {если равнЫ запоминаем их номера}
 begin
 ka:=i; //их номера в матрицах
 kb:=j;
 end
 else j:=j+1;{иначе переходим на следущий столбец}
 if ka=0 then i:=i+1;
 end;
 if ka=0 then write('Одинаковых столбцов нет')
 else
 begin
 writeln('Одинаковые столбцы №',ka,' в матрице А и №',kb,' в матрице В');
 s:=0;
 for i:=1 to m do{Сумма в этих столбцах}
 s:=s+a[ka][i];
 writeln('Сумма в каждом из них=',s);
 end;
 end.
1
05.07.2011, 23:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2011, 23:57
Помогаю со студенческими работами здесь

Обнулить столбцы матрицы, в которых есть одинаковые элементы
const n=3; var a:array of integer; b,c,d:integer; begin {Вводим массив} for b:=1...

Определить есть ли в записи чисел одинаковые цифры и посчитать их сумму
Помогите решить задачу, ато у меня получается 3 цикла в цикле с пробегом каждой цифры и сравнением...

Даны две матрицы. Есть ли в них одинаковые строки?
Даны две матрицы. Есть ли в них одинаковые строки? Помогите срочно надо Пожалуйста!

Переставить столбцы матрицы местами, если в ней есть счастливые строки
Не могу понять условие(


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

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