Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Одесситка
0 / 0 / 0
Регистрация: 16.11.2008
Сообщений: 15
1

Необходимо найти количество элементов кратных 9 в матрице а и кратных 10 в матрице В

26.11.2008, 14:03. Просмотров 1347. Ответов 7
Метки нет (Все метки)

У меня есть пример решения задачи,надо решить аналогичную.Вот решенный пример:

Даны две целочисленные матрицы А размером 15*15 и матрица В размером 20*25.Необходимо найти количество элементов кратных 9 в матрице а и кратных 10 в матрице В.Так же необходимо построить дополнительные массивы состоящие только из отрицательных значений обоих массивов(A=>C,B=>D).полученные массивы вывести на экран.
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
program Project456;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
const dl=20;
 type matrix=array [1..len,1..len] of integer;
 massiv=array [1..len*len] of integer;
 var a,b:matrix;
 c,d:massiv;
 na,ma,nb,mb:byte;
 nc,nd:integer;
 procedure input_matr(n,m:byte;var x:matrix);
 var i,j:byte;
 
begin
for i:=1 to n do
for j:=1 to m do
read(x[i,j]);
end;
function kolichestvo(n,m:byte;nachalo:byte;x:matrix):integer;
var i,j:byte;
s:integer;
begin
s:=0;
for i:=1 to n do
for j:=1 to m do
if x[i,j] mod nachalo=0 then
s:=s+1;
kolichestvo:=s
end;
{function kolichestvo(n,m:byte;nachalo:byte;x:matrix):integer;
var i,j:byte;
begin
result:=0;
for i:=1 to n do
for j:=1 to m do
if x[i,j] mod nachalo=0 then
result:=result+1;
end;}
procedure new_mass(n,m:byte;x:matrix;y:massiv;var t:integer);
var i,j:byte;
begin
t:=0;
for i:=1 to n do
for j:=1 to m do
if x[i,j]<0 then
begin
t:=t+1;
y[t]:=x[i,j]
end;end;
procedure print_mas(t:integer;y:massiv);
var i:integer;
begin
for i:=1 to t do
write(y[i],'');
end;
begin
writeln('vvedite razmernost a');
write('na=');
readln(na);
writeln('vvedite matrix a(',na,'*'na,')');
input matr(na,na,a);
writeln('vvedite razmernost b');
write('nb=');
readln(nb);
write('mb=');
readln(mb);
writeln('vvedite matrix b(',nb,'*'mb,')');
input matr(nb,mb,b);
writeln('kolichestvo kratnix 6 dlya matrix a:',kolicestvo(na,na,6,a));
writeln('kolichestvo kratnix 7 dlya matrix b:',kolichestvo(nb,mb,7,b));
new mas(na,na,a,c,nc);
new mas(nb,mb,b,d,nd);
if nc=0 then
writeln('v matrix a net elementov<0');
else
begin
writeln('print massiv c');
print mas(nc,c);
end;
writeln;
if nd=0 then
writeln('v matrix b net elementov<0')
else
begin
writeln('print massiv d');
print mas(nd,d);
end;end.
Добавлено через 2 минуты 22 секунды
мне надо решить вот что:
Ввести с клавиатуры матрицы A(m,n) и D(k,q)

1.Вычислить количество элементов кратных 6 для первой матрицы и кратных 7 для второй.
2.Построить вектор,каждый элемент которого равен сумме элементов в i-той строке матрицы,принадлежащей отрезку [-2,3].
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2008, 14:03
Ответы с готовыми решениями:

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

Для каждой строки двумерного массива подсчитать и выдать на печать количество элементов, кратных 3 и кратных
21. Для каждой строки двумерного массива подсчитать и выдать на печать...

Дана числовая последовательность. Найти количество чисел кратных 3 и не кратных 2
Дана числовая последовательность. Найти кол-во чисел кратных 3 и не кратных 2.

Найти количество элементов массива, кратных двум и не кратным трем
дан массив целых чисел из 12 элементов. найти количество элементов массива...

Одномерный массив: найти количество элементов массива, кратных трем
Недавно начал изучать делфи, пожалуйста, помогите. Как найти количество...

7
Arriba
255 / 171 / 27
Регистрация: 17.10.2008
Сообщений: 770
26.11.2008, 23:28 2
А тебе по подобию решать нуно обязательно или нет, моно по своему то,тут столько наворотов не нуно как я думаю.

Добавлено через 1 час 37 минут 25 секунд
Вот решил задачку твою, но втором заданице не совсем понял:
нуно чтобы сумма элементов по строчке матрицы была в интервале от-3 до 2 и тогда записываем? или же чтобы элемент был в интервале от -3 до 2 и тогда его прибавляем к сумме?
Я сделал что если сумма всех элементов по строчке матрицы лежит в интервале от -3 до 2 то тогда записываю сумму по этой строчке в элемент вектора,если не так исправлю, тут пару минут. Да и вектор определяю по первой матрице, случаем не по двум матрицам ли нуно?
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
99
100
101
102
103
104
105
106
107
108
109
110
111
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
type matr=array of array of integer;
 
procedure Prints(mt:matr;lenAx,lenAy:integer);
var i,j:integer;
begin
    for j:=0 to lenAy-1 do
    for i:=0 to lenAx-1 do
       if i<>lenAx-1 then
        Write(mt[j,i],' ')
       else
        WriteLn(mt[j,i]);
end;
 
procedure ColElem(mt:matr;lenAx,lenAy,kr:integer);
var i,j,num:integer;
begin
   num:=0;
    for j:=0 to lenAy-1 do
    for i:=0 to lenAx-1 do
       if (mt[j,i] mod kr)=0 then
        num:=num+1;
   WriteLn('num(',kr,')=',num);
end;
function Vektr(mt:matr;lenAx,lenAy:integer):matr;
var k,i,j,sum,nom:integer;
begin
   sum:=0;
   nom:=0;
   k:=0;
   repeat
       for j:=0 to lenAy-1 do
       for i:=0 to lenAx-1 do
          if i<>lenAx-1 then
            sum:=sum+mt[j,i]
          else
             begin
                sum:=sum+mt[j,i];
                if (sum>=-3) and (sum<=2) then
                 begin
                    if k<1 then
                      nom:=nom+1
                    else
                      begin
                         Result[0,nom]:=sum;
                         nom:=nom+1;
                      end;
                   sum:=0;
                 end;
             end;
       if nom<>0 then
        begin
           SetLength(Result,2,nom);
           Result[1,0]:=nom;
        end
       else
         begin
            k:=2;
            SetLength(Result,2,1);
            Result[1,0]:=0;
         end;
      nom:=0;
      sum:=0;
      k:=k+1;
   until k>1;
end;
 
var lenAx,lenAy,lenBx,lenBy:integer;
    a,b:matr;
    i,j,d:integer;
begin
{Вводим первую матрицу}
     Write('vvedi razmer A[lenAx,LenAy]=');
     ReadLn(lenAx,lenAy);
     Setlength(a,lenAy,lenAx);
    for j:=0 to lenAy-1 do
    for i:=0 to lenAx-1 do
     begin
        Write('A[',j+1,',',i+1,']=');
        ReadLn(a[j,i]);
     end;
    Prints(a,lenAx,lenAy);//печатаем на экран
{Вводим вторую матрицу}
     Write('vvedi razmer B[lenBx,LenBy]=');
     ReadLn(lenBx,lenBy);
     Setlength(b,lenBy,lenBx);
    for j:=0 to lenBy-1 do
    for i:=0 to lenBx-1 do
     begin
        Write('B[',j+1,',',i+1,']=');
        ReadLn(b[j,i]);
     end;
    Prints(b,lenBx,lenBy);//печатаем на экране
    ColElem(a,lenAx,lenAy,6);//число элементов делящихся на 6
    ColElem(b,lenBx,lenBy,7);//число элементов делящихся на 7
    a:=Vektr(a,lenAx,lenAy);//вектор получаем
     if a[1,0]<>0 then
      begin
        for d:=0 to a[1,0]-1 do
          Write( a[0,d],' ');
      end
     else
       Write('netu vektora');
ReadLn;
end.
0
Одесситка
0 / 0 / 0
Регистрация: 16.11.2008
Сообщений: 15
28.11.2008, 09:36  [ТС] 3
Arriba, мне надо решить именно таким способом как в примере-без так называемых *упрощений*.Помнишь те задачки что ты решил?Мне мой препод сказал-все правильно,но переделывай так как МЫ учим,а то начну докапываться до каждой буквы.поэтому я выложила пример решения-если можешь,сделай по такому же типу...(setlenght и типы extended мы не проходили-на этом я и прокололась...)

Добавлено через 9 минут 6 секунд
проверять надо по обеим матрицам.и мне еще чуток изменили условие.на примере покажу что изменили:

например матрица А:

-1 4 5
7 -8 3
1 2 3

Программа должна посчитать не сумму элементов,а количество элементов в каждой строке,которые соответствуют этому интервалу [-2;3].То есть для матрицы А должно быть выдано такое сообщение:
матрица а,строка 1:s=1
матрица а,строка 2:s=1
матрица а,строка 3:s=3

и тоже самое для второй матрицы..ты понял что имеетьсся ввиду?...Если нетрудно,реши с теми дополнениями,что я указала....И не *упрощай* плиз-а то ж не верят что я писала=))))
0
Arriba
255 / 171 / 27
Регистрация: 17.10.2008
Сообщений: 770
29.11.2008, 01:23 4
Ну так так бы и сказала, что вы ещё не проходили того то, того то, яж не знаю что вы там изучаете,так что делись программой твоего обучения,а вместо extended пиши real, ток числа если будут большие прога вылетет просто и всё.

Добавлено через 12 часов 52 минуты 30 секунд
ArribaИ не *упрощай* плиз-а то ж не верят что я писала=))))
Так что препод вообще придурок чтоль, он сразу заметит что в коде не разбираешся,стоит задать один простой вопросик, а что это за переменная, и за что она отвечает,сразу проколишся. Нуно досканально изучать программу что я написал, для того чтобы знать что за что отвечает и зачем это нуно.Тем более я всегда даж сам предлогаю, если что непонятно ты напиши я объясню, а не просто беги здавать преподу.
Вот переделанная програмка:
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
99
100
101
102
103
104
105
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
const
leny=100;
lenx=50;
 
type matr=array[1..lenx,1..leny] of integer;
 
procedure Prints(mt:matr;lenAx,lenAy:integer);
var i,j:byte;
begin
    for j:=1 to lenAy do
    for i:=1 to lenAx do
       if i<>lenAx then
        Write(mt[j,i],' ')
       else
        WriteLn(mt[j,i]);
end;
 
procedure ColElem(mt:matr;lenAx,lenAy,kr:integer);
var num:integer;
    i,j:byte;
begin
   num:=0;
    for j:=1 to lenAy do
    for i:=1 to lenAx do
       if (mt[j,i] mod kr)=0 then
        num:=num+1;
   WriteLn('num(',kr,')=',num);
end;
 
function Vektr(mt:matr;lenAx,lenAy:integer;sm:byte):matr;
var sum,nom:integer;
    i,j:byte;
begin
   sum:=0;
   nom:=0+sm;
    for j:=1 to lenAy do
    for i:=1 to lenAx do
       if i<>lenAx then
        begin
           if (mt[j,i]>=-3) and (mt[j,i]<=2) then
            begin
               sum:=sum+1;
            end;
        end
       else
        begin
           if (mt[j,i]>=-3) and (mt[j,i]<=2) then
            begin
               sum:=sum+1;
            end;
           if sum<>0 then
             begin
                Result[1,nom+1]:=sum;
                nom:=nom+1;
                sum:=0;
             end
        end;
   Result[2,1]:=nom;
end;
 
var lenAx,lenAy,lenBx,lenBy:integer;
    a,b:matr;
    d:integer;
    i,j:byte;
begin
{Вводим первую матрицу}
     Write('vvedi razmer A[lenAx,LenAy]=');
     ReadLn(lenAx,lenAy);
    for j:=1 to lenAy do
    for i:=1 to lenAx do
     begin
        Write('A[',j,',',i,']=');
        ReadLn(a[j,i]);
     end;
    Prints(a,lenAx,lenAy);//печатаем на экран
{Вводим вторую матрицу}
     Write('vvedi razmer B[lenBx,LenBy]=');
     ReadLn(lenBx,lenBy);
    for j:=1 to lenBy do
    for i:=1 to lenBx do
     begin
        Write('B[',j,',',i,']=');
        ReadLn(b[j,i]);
     end;
    Prints(b,lenBx,lenBy);//печатаем на экране
    ColElem(a,lenAx,lenAy,6);//число элементов делящихся на 6
    ColElem(b,lenBx,lenBy,7);//число элементов делящихся на 7
    a:=Vektr(a,lenAx,lenAy,0{смещение на запись});//вектор получаем по первой матрице
    a:=Vektr(b,lenBx,lenBy,a[2,1]{смещение на запись});//вектор получаем по второй матрице
     if a[2,1]<>0 then
      begin
        for d:=1 to a[2,1] do
          Write( a[1,d],' ');
      end
     else
       Write('netu vektora');
ReadLn;
end.
0
Одесситка
0 / 0 / 0
Регистрация: 16.11.2008
Сообщений: 15
30.11.2008, 17:11  [ТС] 5
нет,просто в том что мы проходим я могу объяснить каждую строчку...я просто буду писать какая тема и пример решения задачи-если будет нетрудно,делай просто по примеру,фактичесски ничего не добавляя...окей?..
0
Arriba
255 / 171 / 27
Регистрация: 17.10.2008
Сообщений: 770
30.11.2008, 20:32 6
Ты прогу посмотри, прально работает или нет, и я просто не буду вылезать за те грубо говоря элементы, что вы используете и всё...
0
Одесситка
0 / 0 / 0
Регистрация: 16.11.2008
Сообщений: 15
01.12.2008, 19:45  [ТС] 7
Вроде правильно=)
еще одну задачку надо решить=)
в новой теме записать или тут закинуть?

Добавлено через 3 часа 54 минуты 7 секунд
Хм,дана задача с уравнениями и степенями.как мне ее сюда запхнуть чтоб понятно было что в какую степень возводитьсся?
0
Arriba
255 / 171 / 27
Регистрация: 17.10.2008
Сообщений: 770
02.12.2008, 09:41 8
Цитата Сообщение от Одесситка Посмотреть сообщение
Добавлено через 3 часа 54 минуты 7 секунд
Хм,дана задача с уравнениями и степенями.как мне ее сюда запхнуть чтоб понятно было что в какую степень возводитьсся?
Моно в ворде закинуть, а моно и в качестве рисунка, щас сессия у меня, буду в конце недели...Создай лудше новую тему.
0
02.12.2008, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2008, 09:41

Найти количество элементов массива, кратных 3 и вывести в компонент StringGrid
Создать двумерный массив А(N,M) целых положительных и отрицательных чисел с...

Найти номер строки массива, в котором находится наибольшее количество элементов, кратных 5
Найти номер строки массива размером MxN, в котором находится наибольшее...

Найти номер строки массива, в котором находится наибольшее количество элементов, кратных 5
Найти номер строки массива размером MxN, в котором находится наибольшее...


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

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

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