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

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

11.03.2015, 19:55. Показов 1217. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я в программировании вообще никакой..Но есть большое желание научиться С нуля учиться довольно таки сложно..
Но мне дали задание : решить определенную задачу с двумерными и одномерными массивами.
Немного полазил у вас по форуму,нашел уйму полезной информации как создавать массивы,как работать с ними.
Но нужна помощь в определенной части условия,а именно:
Есть матрица,с матрицы нужно найти один элемент - x[i].
Само условие звучит так:
_
За x[i] принять самый большой элемент i-го столбика, если он содержит хотя бы один отрицательный элемент, иначе - сумму элементов, находящихся на нечетных позициях i-й строки и превышают заданное число L.
-

Я так понял нужно найти максимальный элемент матрицы (могу сделать),и определить есть ли в столбике с этим элементом отрицательное число?Если есть то берем это число за x[i].
А вот "иначе" я не могу понять..
Как бы нужно ввести L,а затем найти "сумму элементов, находящихся на нечетных позициях i-й строки" и сравнить их,но само понятие "на нечетных позициях і-й строки" это как вообще?

Если кто-то сможет помочь,буду очень признателен..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2015, 19:55
Ответы с готовыми решениями:

Найти сумму элементов массива, находящихся на нечётных позициях
Дан одномерный массив.Найти: 1) сумму элементов находящихся на нечётных позициях.

Дана матрица А (4,4) найти сумму нечетных элементов матрицы и произведение элементов находящихся на главной диагонали
Дана матрица А (4,4) найти сумму нечетных элементов матрицы и произведение элементов находящихся на...

Ввести массив. Вывести его. Найти сумму элементов на четных позициях и произведение на нечетных позициях
Помогите пожалуйста решить. ввести массив. Вывести его. Найти сумму элементов на четных позициях и...

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

14
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.03.2015, 20:02 2
Х это одномерный массив размером равный размеру матрицы, если она квадратная. Каждый элемент массива x[i] это
или самый большой элемент i-го столбика если в столбце есть хотя бы один отрицательный элемент,
или сумму элементов, находящихся на нечетных позициях i-й строки и превышают заданное число L.
если матрица не квадратная, то в первом случае размер массива=количеству столбцов, во втором случае количеству строк.
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 11
Записей в блоге: 1
11.03.2015, 20:26  [ТС] 3
А как это сделать?
Можете как-то по шагам описать?
Так как я мало что понимаю..
Максимальный элемент матрицы смогу найти,а вот каждого столбика,вряд ли
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.03.2015, 22:00 4
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    x:array[1..nmax] of integer;
    n,i,j,k:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-5+random(50);
    write(a[i,j]:3);
   end;
  writeln;
 end;
for i:=1 to n do{перебираем все столбцы}
 begin
  k:=0;{пока нет отрицательных}
  j:=1; {идем по столбцу}
  while(j<=n)and(k=0) do
  if a[j,i]<0 then k:=1{есть отрицательный}
  else j:=j+1;
  if k=1 then
   begin
    x[i]:=a[1,i];{находим максимальный в столбце}
    for j:=2 to n do
    if a[j,i]>x[i] then x[i]:=a[j,i];
   end
  else {нет отрицательного}
   begin
    x[i]:=0;{находим сумму элементов в строке i, стоящих на нечетных местах}
    for j:=1 to n do
    if odd(j) then x[i]:=x[i]+a[i,j];
   end;
 end;
writeln('Массив X');
for i:=1 to n do
write(x[i]:4);
readln
end.
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 11
Записей в блоге: 1
11.03.2015, 22:32  [ТС] 5
Спасибо)Тут разобрался)

А дальше нужно ввести число L,и суммировать элементы каждой строки через один?
это будет выглядеть как-то так?


Pascal
1
2
3
4
5
6
7
8
9
10
11
for i:=1 to m do
begin
q:=0;
 for j:=1 to n do
q:=q+a[i,j+1];
if q>l then
begin
x[i]:=q;
Write(x[i],'  ');
end;
end;

Или я неправильно понял?(

Добавлено через 8 минут
Или это и есть второй случай?

Pascal
1
2
3
x[i]:=0;{находим сумму элементов в строке i, стоящих на нечетных местах}
    for j:=1 to n do
    if odd(j) then x[i]:=x[i]+a[i,j];
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.03.2015, 06:25 6
Забыл про L.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
write('Введите число L=');
readln(L);
for i:=1 to n do{перебираем все столбцы}
 begin
  k:=0;{пока нет отрицательных}
  j:=1; {идем по столбцу}
  while(j<=n)and(k=0) do
  if a[j,i]<0 then k:=1{есть отрицательный}
  else j:=j+1;
  if k=1 then
   begin
    x[i]:=a[1,i];{находим максимальный в столбце}
    for j:=2 to n do
    if a[j,i]>x[i] then x[i]:=a[j,i];
   end
  else {нет отрицательного}
   begin
    x[i]:=0;{находим сумму элементов в строке i, стоящих на нечетных местах}
    for j:=1 to n do
    if odd(j)and(a[i,j]>L) then x[i]:=x[i]+a[i,j];
   end;
 end;
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 11
Записей в блоге: 1
12.03.2015, 08:44  [ТС] 7
Вроде бы понятно)Спасибо)

Но что такое "odd" ?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.03.2015, 08:48 8
odd(j) значит j нечетное.

Добавлено через 45 секунд
то же что и if j mod 2<>0
0
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 11
Записей в блоге: 1
12.03.2015, 17:15  [ТС] 9
То есть вся программа будет выглядеть так?


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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    x:array[1..nmax] of integer;
    n,i,j,k:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-5+random(50);
    write(a[i,j]:3);
   end;
  writeln;
 end;
write('Введите число L=');
readln(L);
for i:=1 to n do{перебираем все столбцы}
 begin
  k:=0;{пока нет отрицательных}
  j:=1; {идем по столбцу}
  while(j<=n)and(k=0) do
  if a[j,i]<0 then k:=1{есть отрицательный}
  else j:=j+1;
  if k=1 then
   begin
    x[i]:=a[1,i];{находим максимальный в столбце}
    for j:=2 to n do
    if a[j,i]>x[i] then x[i]:=a[j,i];
   end
  else {нет отрицательного}
   begin
    x[i]:=0;{находим сумму элементов в строке i, стоящих на нечетных местах}
    for j:=1 to n do
    if odd(j)and(a[i,j]>L) then x[i]:=x[i]+a[i,j];
   end;
 end;
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.03.2015, 17:23 10
Цитата Сообщение от Novikov Посмотреть сообщение
вся программа будет выглядеть так
Конечно нет, тут элементарно нет конца.

Добавлено через 4 минуты
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    x:array[1..nmax] of integer;
    n,i,j,k,L:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-5+random(50);
    write(a[i,j]:3);
   end;
  writeln;
 end;
write('Введите число L=');
readln(L);
for i:=1 to n do{перебираем все столбцы}
 begin
  k:=0;{пока нет отрицательных}
  j:=1; {идем по столбцу}
  while(j<=n)and(k=0) do
  if a[j,i]<0 then k:=1{есть отрицательный}
  else j:=j+1;
  if k=1 then
   begin
    x[i]:=a[1,i];{находим максимальный в столбце}
    for j:=2 to n do
    if a[j,i]>x[i] then x[i]:=a[j,i];
   end
  else {нет отрицательного}
   begin
    x[i]:=0;{находим сумму элементов в строке i, стоящих на нечетных местах}
    for j:=1 to n do
    if odd(j)and(a[i,j]>L) then x[i]:=x[i]+a[i,j];
   end;
 end;
writeln('Массив X');
for i:=1 to n do
write(x[i]:4);
readln
end.
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 11
Записей в блоге: 1
12.03.2015, 19:44  [ТС] 11
А если вводить элементы с клавиатуры например в матрице 3х3,
при элеменах 1,2,3,4,5,6,7,8,9
вектор Х будет : 0,10,16
на первом месте должно ведь быть 4?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.03.2015, 19:48 12
Матрица
1 2 3
4 5 6
7 8 9
В столбцах отрицательных нет, значит считаем сумму в строках
1+2+3=6
4+5+6=15
7+8+9=24
0
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 11
Записей в блоге: 1
12.03.2015, 20:29  [ТС] 13
А программа выводит 0,10,16
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.03.2015, 20:48 14
Я уже забыл условие, нужно сумму в строках элементов на нечетных местах и больших L
В такой матрице при L=0 будет
4 10 16

Добавлено через 2 минуты
А при L=3 будет как раз
0,10,16
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 11
Записей в блоге: 1
12.03.2015, 20:54  [ТС] 15
Ех,спасибо)
Извините что надоедаю,просто очень хочу разобраться)
Спасибо еще раз
0
12.03.2015, 20:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2015, 20:54
Помогаю со студенческими работами здесь

Подсчитать сумму цифр числа, находящихся на нечетных позициях
Ввести натуральное число. Подсчитать сумму цифр, находящихся на нечетных позициях( слева направо...

Вывод букв, находящихся на нечётных позициях строки (индексация от 0).
Написать программу, которая выведет из введенного строке на экран только парные за порядком буквы...

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

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


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

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