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

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

20.10.2017, 00:35. Показов 5659. Ответов 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
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru