Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
lessya
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 2
1

Найти сумму элементов четных строк матрицы, содержащих хотя бы один нулевой элемент

28.03.2015, 11:22. Просмотров 321. Ответов 5
Метки нет (Все метки)

Привет всем ! помогите пожалуйста ,мне не нужна вся программа,только часть ее . нужно найти сумму элементов четных строк содержащих хотя бы один нулевой элемент (в двумерном массиве) . насколько я поняла мне нужно чтобы в четных строках содержался минимум один 0 и он посчитал сначала сумму этой строки и сложил с суммой другой четной строки где также содержится 0 .Не могу претворить в жизнь перепробовала несколько вариантов не выходит .буду очень благодарна!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2015, 11:22
Ответы с готовыми решениями:

Найти количество строк матрицы, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить: 1) количество строк,...

Определить количество столбцов матрицы, содержащих хотя бы один нулевой элемент
помогите пожалуйста с задачей! дана целочисленная прямоугольная матрица. Нужно...

Определить количество столбцов матрицы, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить: 1) количество столбцов,...

Определить количество столбцов матрицы, содержащих хотя бы один нулевой элемент
PASCAL Дана целочисленная прямоугольная матрица Определить: -количество...

Найти номер первой из строк матрицы, содержащих хотя бы один положительный элемент
Целочисленная прямоугольная матрица заполняется с помощью генератора случайных...

5
JokeR.BY
CAPITAL OF ROCK!
1278 / 705 / 982
Регистрация: 03.03.2010
Сообщений: 2,284
Завершенные тесты: 2
28.03.2015, 15:39 2
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
type
    TLine = Array[Byte] Of ShortInt;
 
function HaveZero(const l: TLine; const n: Byte): Boolean; //функция проверяет есть ли ноль в данной строке
var
    Result: Boolean; //если будет ругаться на повторное декларирование - закомментировать / удалить
    i: Byte;
begin
    Result := False;
    i := 0;
    while ((i < n) And (Not Result)) do //пока не конец строки или не нашли ноль
    begin
        Result := l[i] = 0; //проверяем на ноль элемент строки
        Inc(i); //наращиваем счётчик
    end;
    HaveZero := Result; //возвращаем результат
end;
 
function SumLine(const l: TLine; const n: Byte): Integer; //функция суммирует строку
var
    Result: Integer;
    i: Byte;
begin
    Result := 0; //инициализируем
    for i := 0 to n - 1 do
        Inc(Result, l[i]); //суммируем
    SumLine := Result; //возвращаем
end;
 
var
    i, j, n, m, count: Byte;
    sum: LongInt;
    mass: Array[Byte] Of TLine;
begin
    repeat
        Write('rows=');
        ReadLn(n);
    until (n > 0); //вводим количество строк с проверкой чтоб не было 0
    repeat
        Write('columns=');
        ReadLn(m);
    until (m > 0); //аналогично
    Randomize;
    for i := 0 to n - 1 do
    begin
        for j := 0 to m - 1 do
        begin
            mass[i, j] := Random(11) - 5; //рандомим в диапазоне [-5; 5]
            Write(mass[i, j]:4); //выводим
        end;
        WriteLn;
    end;
    sum := 0; i := 1; count := 0; //выставляем начальные значения
    while (i < n) do //проходим через все строки
    begin
        if (HaveZero(mass[i], m)) //если в строке есть 0
        then
        begin
            Inc(sum, SumLine(mass[i], m)); //суммируем
            Inc(count); //и увеличиваем счётчик таких строк
        end;
        Inc(i, 2); //переходим к следующей чётной строке
    end;
    WriteLn;
    if (count = 0) //если таких строк не нашлось
    then
        WriteLn('No one!')
    else //иначе
        WriteLn('sum=', sum);
end.
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
4138 / 2733 / 2171
Регистрация: 22.11.2013
Сообщений: 7,639
28.03.2015, 17:20 3
Pascal
1
2
3
4
5
6
7
8
9
10
s:=0;
for i:=1 to m div 2 do begin
  t:=0; c:=0;
  for j:=1 to n do begin
    if a[i*2,j]=0 then Inc(c);
    t:=t+a[i*2,j];
  end;
  if c>0 then s:=s+t;
end;
WriteLn(s);
0
lessya
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 2
30.03.2015, 18:40  [ТС] 4
Спасибо работает в принципе правильно,но есть такой момент, если пользователь не вводит сам 0 то он выдает сумма =0 , как задать этот 0 либо как константу в четной строке или обязательный ввод .

Добавлено через 7 минут
Может быть я поменяла не так что-то, вот как вышло,прошу проверить и не судить строго недавно начала изучать :
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
Program sum1;{черновик }
const
a=6;
b=6;
var
a:array[1..a,1..b] of integer;
 m,n,n1,n2:integer;
  t:integer;
  s,y,k :integer;
  BEGIN
 Writeln('введите элементры  a:');
 for m:=1 to a do
 for n:=1 to b do
 Readln(a[m,n]);
s:=0;
for m:=1 to a div 2 do begin
  y:=0; k:=0;
  for n:=1 to b do begin
    if a[m*2,n]=0 then Inc(k);
    y:=y+a[m*2,n];
  end;
  if k>0 then s:=s+y;
end;
WriteLn('сумма четных строк содержащие  нулевой элемент ',s);
 Writeln('матрица  a:');
 for m:=1 to a do
  begin
   for n:=1 to b do
   Write(a[m,n]:8);
   Writeln;
  end;
  readln;
  end.
0
JokeR.BY
CAPITAL OF ROCK!
1278 / 705 / 982
Регистрация: 03.03.2010
Сообщений: 2,284
Завершенные тесты: 2
30.03.2015, 21:12 5
lessya, в моём варианте уже есть проверка так то. могли бы и подсмотреть
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
4138 / 2733 / 2171
Регистрация: 22.11.2013
Сообщений: 7,639
31.03.2015, 08:28 6
lessya,
возможно, не стоит заставлять жать Enter после каждого числа, вдруг кому-то удобнее в строчку вводить:
Pascal
12
13
14
15
  for m:=1 to a do
    for n:=1 to b do
      Read(a[m,n]);
  ReadLn;
Добавлено через 9 минут
Pascal
15
  s:=0; p:=0;
Pascal
22
23
24
25
26
27
  if k>0 then begin
    s:=s+y; Inc(p);
  end;
...
  if p=0 then WriteLn('Четные строки, содержащие 0, отсутствуют')
  else WriteLn('Сумма четных строк, содержащих 0, равна ',s);
0
31.03.2015, 08:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2015, 08:28

Найти количество столбцов матрицы, в которых есть хотя бы один нулевой элемент
Найти количество столбцов матрицы Y(8,6), в которых есть хотя бы один нулевой...

Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент
2. Найти сумму элементов в тех столбцах, которые содержат хотя бы один...

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


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

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

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