0 / 0 / 0
Регистрация: 16.04.2017
Сообщений: 2
1

Вычисления в прямоугольной матрице

16.04.2017, 17:04. Показов 375. Ответов 9
Метки нет (Все метки)

Добрый вечер уважаемые форумчане !Нужна ваша помощь!

Дана целочисленная прямоугольная матрица. Вычислить:
1)минимальный по модулю элемент массива;
2)сумму модулей элементов , расположенных после первого элемента ,равному нулю.
3)Преобразовать массив таким образом , чтобы в первой его половине распологались элементы , стоявшее в четных позициях , а во второй половине - элементы , стоявшее в нечетных позициях.

похожая тема есть здесь:
но там нужно вычислить в одномерном массиве состоявшим из n целочисленных элементов, а у меня в прямоугольной матрице
Помогите пожалуйста понять разницу
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2017, 17:04
Ответы с готовыми решениями:

В прямоугольной матрице найти сумму и количество элементво по условию
Срочно гляньте кто сможет... Выполнение на Visual Basic: В прямоугольной матрице,...

Если в прямоугольной матрице
Нужна помощь с таким заданием: Если в прямоугольной матрице А (m*n) меньше половины столбцов...

Задание по прямоугольной матрице
По заданию нужно Дана целочисленная прямоугольная матрица. Определить - количество строк, не...

Задача о прямоугольной матрице
Помогите пожалуйста Дана целочисленная прямоугольная матрица. Определить: • количество строк, не...

9
5560 / 1366 / 150
Регистрация: 08.02.2009
Сообщений: 4,106
Записей в блоге: 30
16.04.2017, 19:33 2
Разницы никакой. Начните делать.

Девять лет назад люди ещё соблюдали падежи (!):
Цитата Сообщение от Гость Посмотреть сообщение
после первого элемента равного нулю
2
0 / 0 / 0
Регистрация: 16.04.2017
Сообщений: 2
16.04.2017, 19:58  [ТС] 3
C++
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
#include<iostream>
#include<iomanip>
#include<cmath>
#include<ctime>
using namespace std;
void RandInt ( int range_min, int range_max, int *u,  int nf)
{
    srand ((unsigned int) time(NULL));
for(int i=0;i<nf;i++)
{
    u[i]= rand()%(range_max-range_min)+range_min;
}
cout<<endl;
return;
}
void Vivod (int *u , int nf)
{
cout <<endl<<"Массив u" <<endl;
cout<<endl;
for(int i=0;i<nf;i++)
{
    cout<<"u["<<setw(2)<<i<<"]: ";
    cout <<setw(8)<<u[i]<<endl;
}
cout<<endl;
return ;
}
void Novaya ( int *u , int nf, int sum)
{
for(int i=0;i<nf;i++)
{
mabs=abs(u[i]);
 if(mabs<min) 
min=u[i];
if(u[i]==0) 
{sum+=mabs}
}
return;
}
Мне нужно на Visual Basic for Application, а это на C++
0
5560 / 1366 / 150
Регистрация: 08.02.2009
Сообщений: 4,106
Записей в блоге: 30
16.04.2017, 20:09 4
Stavr1992, это и по вашей ссылке было ясно.
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
В решении подобных задач, например, у sco43 38 строк; у mc-black’а 35; у ikki (царство небесное) 9; у Апострофф’а (свободу попугаям!) 1 (!) — а у меня…
…строк 40 может быть. Но пока не готов! — работаю над своей работой.
3
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
17.04.2017, 07:35 5
Sasha_Smirnov
Тут ТС упомянул Первый элемент равный нулю.
Вопрос
А что в матрице является первым элементом?
Откуда идет счет? И куда? И как? По строкам?
По столбцам? По спирали? Или еще как?
0
5560 / 1366 / 150
Регистрация: 08.02.2009
Сообщений: 4,106
Записей в блоге: 30
17.04.2017, 08:56 6
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
попробуйте запустить код в моём проекте
Там перебор идёт по строкам слева направо, а сами строки — сверху вниз. Цикл один.

Если сработает, то можно скрестить с универсальным* (не под Excel) и сделать этот.
______________
*
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
будет над чем подумать
1
11424 / 3732 / 673
Регистрация: 13.02.2009
Сообщений: 11,066
17.04.2017, 20:39 7
Девять лет назад люди ещё соблюдали падежи

Не по теме:

Ага! И пробелы с нужной стороны от запятой ставили!

после первого элемента ,равному нулю.



Добавлено через 2 минуты
Да и представление имели на каком ЯП кодят!
for(int i=0;i<nf;i++)
{
1
Заблокирован
18.04.2017, 01:19 8
Цитата Сообщение от Stavr1992 Посмотреть сообщение
Дана целочисленная прямоугольная матрица. Вычислить:
1)минимальный по модулю элемент массива;
2)сумму модулей элементов , расположенных после первого элемента ,равному нулю.
3)Преобразовать массив таким образом , чтобы в первой его половине распологались элементы , стоявшее в четных позициях , а во второй половине - элементы , стоявшее в нечетных позициях.
Stavr1992, пока сделал первые два задания. Третье будет позже.
Смотрите код и картинку. Всё в Эксель (VBA).
Visual Basic
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
Sub Stavr1992()
Dim i%, j%, N%, M%, Min%, A()
Dim K%, R%, Sum%, D%
Cells.Clear
N = Int(InputBox("Введите количество строк", "Ввод данных", 6))
M = Int(InputBox("Введите количество столцов", "Ввод данных", 5))
ReDim A(1 To N, 1 To M)
For i = 1 To N
  For j = 1 To M
   Cells(i, j) = Int((20 * Rnd) + (-10))
  Next j
Next i
 
Min = Abs(Cells(1, 1))
For i = 1 To N
  For j = 1 To M
   If Abs(Cells(i, j)) <= Min And Abs(Cells(i, j)) <> 0 Then
      Min = Abs(Cells(i, j))
      End If
  Next j
Next i
Cells(N + 2, 5) = Min
Cells(N + 2, 1) = "   Минимальн. по модулю эл-т: Min = "
 
K = 0: R = 0: Sum = i + j
For i = 1 To N
  For j = 1 To M
   If Cells(i, j) = 0 And Cells(i, j) < Sum Then
      K = i
      R = j
      End If
  Next j
Next i
Cells(N + 3, 5) = K
Cells(N + 3, 1) = "   Минимальн. по Sum эл-т: i = "
Cells(N + 4, 5) = R
Cells(N + 4, 1) = "   Минимальн. по Sum эл-т: j = "
 
D = 0
For i = K To UBound(A)
  For j = R To M
   If Cells(i, j) <> 0 Then
      D = D + Cells(i, j)
      End If
  Next j
Next i
Cells(N + 5, 5) = D
Cells(N + 5, 1) = "   Сумма после 1-го нуля: D = "
End Sub
Миниатюры
Вычисления в прямоугольной матрице  
0
Заблокирован
18.04.2017, 02:41 9
Цитата Сообщение от MyExcel_17 Посмотреть сообщение
Третье будет позже
Сделал самую быструю сортировку.
Возможно ошибаюсь, ребята подскажите пожалуйста: как будет верно?
Visual Basic
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
Sub Stavr1992()
Dim i%, j%, N%, M%, Min%, A()
Dim K%, R%, Sum%, D%, E%, t%
Cells.Clear
N = Int(InputBox("Введите количество строк", "Ввод данных", 6))
M = Int(InputBox("Введите количество столцов", "Ввод данных", 5))
ReDim A(1 To N, 1 To M)
For i = 1 To N
  For j = 1 To M
   Cells(i, j) = Int((20 * Rnd) + (-10))
  Next j
Next i
 
Min = Abs(Cells(1, 1))
For i = 1 To N
  For j = 1 To M
   If Abs(Cells(i, j)) <= Min And Abs(Cells(i, j)) <> 0 Then
      Min = Abs(Cells(i, j))
      End If
  Next j
Next i
Cells(N + 2, 5) = Min
Cells(N + 2, 1) = "   Минимальн. по модулю эл-т: Min = "
 
K = 0: R = 0: Sum = i + j
For i = 1 To N
  For j = 1 To M
   If Cells(i, j) = 0 And Cells(i, j) < Sum Then
      K = i
      R = j
      End If
  Next j
Next i
Cells(N + 3, 5) = K
Cells(N + 3, 1) = "   Минимальн. по Sum эл-т: i = "
Cells(N + 4, 5) = R
Cells(N + 4, 1) = "   Минимальн. по Sum эл-т: j = "
 
D = 0
For i = K To UBound(A)
  For j = R To M
   If Cells(i, j) <> 0 Then
      D = D + Cells(i, j)
      End If
  Next j
Next i
Cells(N + 5, 5) = D
Cells(N + 5, 1) = "   Сумма после 1-го нуля: D = "
 
'сделал самую быструю сортировку
'возможно ошибаюсь, ребята подскажите: как верно?
E = Cells((i + j) \ 2)
Do
  While Cells(i) < E: i = i + 1: Wend
  While Cells(j) < E: j = j - 1: Wend
  If i <= j Then
  t = Cells(i): Cells(i) = Cells(j): Cells(j) = t
  i = i + 1: j = j - 1
  End If
Loop While i <= j
 
End Sub
0
Заблокирован
23.04.2017, 15:25 10
Цитата Сообщение от Stavr1992 Посмотреть сообщение
3)Преобразовать массив таким образом , чтобы в первой его половине распологались элементы , стоявшее в четных позициях , а во второй половине - элементы , стоявшее в нечетных позициях.
Цитата Сообщение от MyExcel_17 Посмотреть сообщение
'сделал самую быструю сортировку 'возможно ошибаюсь, ребята подскажите: как верно? E = Cells((i + j) \ 2)
Вот за такой ответ мне стало самому стыдно. Каюсь.
По этому вопросу для себя открыл несколько тем. Пока ясности нет.

Подскажите, пожалуйста, правильный код по заданию № 3.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2017, 15:25
Помогаю со студенческими работами здесь

В прямоугольной матрице размером M*K
В прямоугольной матрице размером M*K, имеющее имя MAM содержаться целые числа. M-число...

Переставить строки в прямоугольной матрице
Ввожу размерность. Ввожу элементы матрицы. Определяю максимальную сумму элементов среди строк....

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

Перевести программу с Си++ на C#. Поиск в прямоугольной матрице
Помогите пожалуйста!!! условие: написать и протестировать ФУНКЦИЮ для нахождения в прямоугольной...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru