Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 12.10.2017
Сообщений: 23

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

20.10.2017, 00:35. Показов 5710. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана квадратная вещественная матрица порядка M.
Найти количество нулевых элементов, стоящих выше
главной диагонали.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.10.2017, 00:35
Ответы с готовыми решениями:

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

Найти количество нулевых элементов, расположенных выше главной диагонали
Дано квадратну дійсну матрицю розмірності n. Знайти кількість нульових елементів, що розміщені вище головної діагоналі. Дано...

Найти число положительных элементов матрицы, стоящих выше главной диагонали
Даны матрицы А(4х5) и В(3х7). Для матрицы А найти число положительных элементов, стоящих выше главной диагонали, а для матрицы В-число...

11
27 / 27 / 16
Регистрация: 22.08.2017
Сообщений: 126
20.10.2017, 01:16
Лучший ответ Сообщение было отмечено traxtibidox как решение

Решение

Вот что получилось:

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
// Example program
#include <iostream>
 
using namespace std;
 
typedef float my_type_data;
typedef unsigned int my_type_counter;
const my_type_counter matrix_size=5;
 
int main(){
    
my_type_data array[matrix_size][matrix_size]={
1,1,0,1,1,
1,0,1,0,0,
1,1,1,1,1,
1,1,1,1,1,
0,1,1,1,1
};
 
my_type_counter i;
my_type_counter j;
my_type_counter counter=0;
 
for(i=0;i!=matrix_size;++i){
for(j=0;j!=matrix_size;++j){
    
if(i<j){
if(array[i][j]==0){
++counter;    
}//if
}//if
    
}//for
}//for
    
cout<<endl<<"counter="<<counter;
  
return 0;
}
Проверялось на:

http://cpp.sh/

Результат:

counter=3
Если написать условие if(i>j), то будет считать количество нулей ниже главной диагонали.
Надо разобраться как массивы хранятся по строкам или по столбцам, я сейчас не помню точно.
Вобщем эта программа считает количество нулей с точностью до того, что считать главной диагональю.

PS.

Вообще-то вещественные на равенство сравнивать нехорошо.
Но на равенство нулю, наверное, можно сравнивать.
Скорее всего это и имелось ввиду в задании.
1
0 / 0 / 0
Регистрация: 12.10.2017
Сообщений: 23
20.10.2017, 01:31  [ТС]
Спасибо большое
0
27 / 27 / 16
Регистрация: 22.08.2017
Сообщений: 126
20.10.2017, 11:44
Да не за что.
Эх, где мои семнадцать лет...
0
0 / 0 / 0
Регистрация: 12.10.2017
Сообщений: 23
21.10.2017, 12:36  [ТС]
Вохникли небольшие проблемы, нужно сделать как то через команду randomize
0
27 / 27 / 16
Регистрация: 22.08.2017
Сообщений: 126
21.10.2017, 12:43
Вохникли небольшие проблемы, нужно сделать как то через команду randomize
Через команду randomize? А при чем тут randomize? Может нули надо по матрице раскидать командой randomize? Вы уточните у препода.
0
0 / 0 / 0
Регистрация: 12.10.2017
Сообщений: 23
21.10.2017, 12:49  [ТС]
Она сказала, чтобы ввод матрицы не производить с клавиатуры, что очень долго, надо сделать автоматические значения матрицы через команду randomize, и далее через i j найти диагональ матрицы
0
27 / 27 / 16
Регистрация: 22.08.2017
Сообщений: 126
21.10.2017, 14:35
Сейчас попробую изобразить. Жди. Преподша хоть симпатичная?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
21.10.2017, 14:57
traxtibidox, А чем Вас не устроил пример в стандартном шаблоне?
Образцы (шаблоны) программ для типовых задач
Там есть функция
C++
1
2
3
4
5
6
7
8
9
10
11
//
// заполнение матрицы случайными числами из диапазона [0, 99] -----------
//
void FillRandomNumbers(int **matrix, const size_t rows, const size_t columns)
{
    srand((unsigned int)time(0)); // инициализируем ПГСЧ
 
    for (size_t row=0; row < rows; row++)
        for (size_t column=0; column < columns; column++)
            matrix[row][column] = rand() % 100; // присваиваем СЧ
}
0
27 / 27 / 16
Регистрация: 22.08.2017
Сообщений: 126
21.10.2017, 15:02
Вот что получилось:


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
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
// Example program
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
typedef float my_type_data;
typedef unsigned int my_type_counter;
const my_type_counter matrix_size=10;
const my_type_counter zero_count=10;
 
int main(){
    
my_type_data array[matrix_size][matrix_size]={
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1,    
1,1,1,1,1,1,1,1,1,1
};
 
long ltime;
int stime;
 
ltime = time (NULL);
stime=(unsigned int) ltime/2;
srand(stime);
 
my_type_counter k;
 
for(k=0;k!=zero_count;++k){
 
my_type_counter index_i=rand();
my_type_counter index_j=rand();
 
index_i%=matrix_size;
index_j%=matrix_size;
 
array[index_i][index_j]=0;
 
}//for
 
my_type_counter i;
my_type_counter j;
 
my_type_counter counter=0;
 
for(i=0;i!=matrix_size;++i){
for(j=0;j!=matrix_size;++j){
    
if(i<j){
if(array[i][j]==0){
++counter;    
}//if
}//if
    
}//for
}//for
    
for(i=0;i!=matrix_size;++i){
    
cout<<endl;
 
for(j=0;j!=matrix_size;++j){
    
cout<<array[i][j]<<",";
 
}//for
}//for
 
cout<<endl<<endl<<"counter="<<counter<<" stime="<<stime;
cout<<endl;
  
return 0;
}

Здесь матрица 10 на 10.
Сначала матрица заполняется единицами.
Потом случайным образом по матрице раскидывается десять нулей с помощью функций srand и rand.
Потом подсчитывается кол-во нулей выше главной диагонали.
Потом печатается сама матрица, найденное кол-во нулей выше главной диагонали и инициализационное значение для функции srand.

Вот пример вывода:

1,1,1,1,1,1,0,1,1,1,
1,1,1,1,1,1,1,1,0,1,
1,1,1,1,1,1,1,1,0,1,
1,1,1,1,1,0,1,1,1,1,
1,1,1,1,1,1,1,1,0,1,
0,1,0,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,1,0,1,
1,1,1,1,1,1,1,1,0,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,

counter=7 stime=754293367
Надо понимать, что от запуска к запуску данные будут разные, потому что нули падают в матрицу случайным образом.

Проверялось на:

http://cpp.sh/
0
0 / 0 / 0
Регистрация: 12.10.2017
Сообщений: 23
21.10.2017, 15:12  [ТС]
Спасибо ещё раз. На вопрос о её внешности отвечу- лучше вам её не видеть, осталось все обмозговать и объяснить ей.
0
27 / 27 / 16
Регистрация: 22.08.2017
Сообщений: 126
21.10.2017, 15:42
лучше вам её не видеть
Ну вот, так всегда...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2017, 15:42
Помогаю со студенческими работами здесь

Найти число и сумму положительных элементов, стоящих выше главной диагонали матрицы
Нужна помощь с этим заданием: Даны матрицы А(5х5) и В(7х7). Для матрицы А найти число и сумму положительных элементов, стоящих выше...

Найти количество положительных элементов матрицы, расположенных выше главной диагонали
Дан целочисленный массив В. найдите кол-во положительных элементов этого массива, расположенных выше главной дагонали

Вычислить среднее арифметическое положительных элементов матрицы, стоящих выше главной диагонали
Дана квадратная матрица порядка N. Вычислить среднее арифметическое положительных элементов матрицы, стоящих выше главной диагонали. ...

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru