Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Определить загруженность ядер процессора Помогите определить загруженность ядер процессора (может как-нибудь получить эти данные из системы). https://www.cyberforum.ru/ cpp-beginners/ thread1244562.html Стабильный код и xor C++
Доброго времени! Есть такой код:double azim = degrees( atan( s/c )); Проблема в том что c может быть нулём, поэтому вышележащий код быстро превратился в: const double eps = 1e-10; double azim; if( fabs(c) < eps ) { if(( s < 0.0 )^^( c < 0.0 ))
C++ Нужен справочник по заголовкам и их функциям Всем привет. Недавно решил научиться программировать на с++ , ранее писал небольшие плагины для игр на pawn. Вроде бы разобрался с синтаксисом и основными моментами, но как написать реальную программу(например, лаунчер) без понятия. У заголовков, как и у функций, названия такие, будто по клаве ударили. Описание на мсдн такое, что поймет только Страуструп. Есть ли какой-то справочник по заголовкам... https://www.cyberforum.ru/ cpp-beginners/ thread1244550.html C++ Путаница с sftream и операторами << и >> Значит так, иду спокойно по книжке по темам "Открытие и закрытие текстовых файлов", а также "Чтение и запись текстовых файлов" и тут я немного запутался. Для того чтобы считать информацию из файла, мы используем ifstream, но я ведь привык, что оператор >> используется для ввода информации. То же самое и с помещением информации через объект класса ostream, и опять же я привык, что <<... https://www.cyberforum.ru/ cpp-beginners/ thread1244538.html
Работа с классами и пересечение их между собой (задача о городах и поездах) C++
Здравствуйте. Тут попалась в руки задачка, вкратце суть: Есть города, в каждом городе есть станция, на станции пассажиры, у пасажира есть цель поездки(N - ый город). Между городами ездят поезда, в поезде N вагонов, в вагоне N мест. Написать грубо говоря всю эту систему (без графики), поезд прибыл-погрузился-отбыл, ну и естественно не телепортировался, а где-то там медленно двигается по...
C++ Чем отличаются по функционалу Kbhit() и _kbhit() Всем привет. Утолите нубское любопытство. Везде (на msdn, как минимум) пишут пользовать _kbhit() и что при этом происходит. Все просто и понятно. Про kbhit() пишут только, что устарел еще во времена vs2005. И все. А функционально чем они отличаются? https://www.cyberforum.ru/ cpp-beginners/ thread1244470.html
C++ Как передвигать указатель на следующий элемент массива структур? Вопрос относительно использования символа стрелка '->'. Допустим, есть такой код: #include<iostream> using namespace std; struct man { char name; int age; }; https://www.cyberforum.ru/ cpp-beginners/ thread1244458.html C++ Вызов конструктора и деструктора с использованием пула
У меня есть некоторая область памяти (указатель на её начало и размер в байтах), часть которой необходимо превратить в объект. У объекта есть конструктор, который корректно инициализирует все поля, а так же деструктор, освобождающий всё, что было занято при создании объекта (к примеру, освобождает мьютекс и очищает строку). Вопрос: как вызвать конструктор и деструктор на уже выделенной памяти?...
C++ Написать шаблон класса очередь, и сделать к типу char спецификацию по заданию, нужно написать шаблон класса очередь, и сделать к типу char спецификацию, вот тут сообственно и начинаются проблемы, сам шаблон класса я написал и он работает, однако отдельное описание под char вообще ни как не удается описать: #include <iostream> using namespace std; #include <iomanip> template <class T, int maxsize> struct MyStruct { int x; MyStruct<T, maxsize> *Next; https://www.cyberforum.ru/ cpp-beginners/ thread1244428.html C++ Где в приведенном коде переменные хранят свои значения Друзья, помогите разобраться с объектами. Например, где, созданные в этом листинге 3 объекта - а, b и с, после инициализации с помощью конструктора по умолчанию, физически хранят свои значения? #include <iostream> #include <conio.h> using namespace std; class Z { public: https://www.cyberforum.ru/ cpp-beginners/ thread1244424.html
C++ Помогите найти программу решения систем алгебраических уравнений методом Зейделя
Ребята, помогите найти программу решения систем алгебраических уравнений методом Зейделя. Код нужен на С++ или на С#. Переделывать с паскаля, с джавы или еще с чего-то нет не времени не сил. Нашел десяток разных реализаций и чуть ли не каждая выдавала свой уникальный ответ на разные входные данные. При этом в интернет онлайн-калькуляторе выдавался еще один уникальный ответ. Я иссяк уже
C++ При релизе программы не падают фигуры по таймеру https://www.cyberforum.ru/ cpp-beginners/ thread1244417.html
Извините, если тема повторяется, но при отладке приложения все нормально(в моем приложении падают фигуры сверху вниз при каждом тике таймера ), при релизе программы они не падают. это странно. Либо не работает таймер, либо не работает функция step в которой как раз и добавляется к к
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
20.08.2014, 14:36 0

Сравнение двумерных матриц - разобрать код - C++ - Ответ 6533801

20.08.2014, 14:36. Показов 7017. Ответов 27
Метки (Все метки)

Ответ

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
gru74ik, а так круто, вам бы методички писать. ))
На самом деле мой труд тут достаточно скромен - оформил код в читаемом виде и написал несколько комментариев. Где чего не знал - тупо гуглил и передирал текст с сайтов типа такого и вот такого. За подсказки, поправки и уточнения покорнейше благодарю!



Добавлено через 2 часа 19 минут
Объяснения по 1-й, 2-й и 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
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
//===================================  4  ======================================
// Определение функции find_max_min(). Назначение функции - искать минимальные и
// максимальные значения в матрице. Функция принимает три аргумента - 
// указатель на массив указателей на тип int и две целочисленные переменные,
// задающие размерность матрицы. Возвращаемое значение - указатель на тип int.
int* find_max_min(int** matrix, int n, int m)
{
// Если память под матрицу не выделена или если матрица не заполнена значениями:
    if ((matrix==NULL)||(n==0)||(m==0))
    {   // Вывести на экран сообщение "сначала создайте матрицу":
        printf("First_create_a_matrix");
            
// В завсисмости от реализации компилятора вернуть 0, либо вернуть "мусор":            
        return NULL;    // Плохой стиль программирования! Лучше так не делать!
    }
    
    else    // иначе
    {
        // Присвоить переменной max значение, хранящееся в первом элементе
        // массива matrix:
        int max = matrix[0][0];
        
        // Создать две целочисленные перменные для максимальных значений
        // и пока что присвоить им нулевые значения:
        int max_k_n = 0, max_k_m = 0;
        
        // Присвоить переменной min значение, хранящееся в первом элементе
        // массива matrix:
        int min = matrix[0][0];
        
        // Создать две целочисленные перменные для минимальных значений
        // и пока что присвоить им нулевые значения:
        int min_k_n = 0, min_k_m = 0;
        
        // ЦИкл пошагово проверяет все элементы матрицы:
        for (int i=0; i<n; i++)
            for (int j=0; j<m; j++)
                
// Если значение, хранящееся в текущем элементе массива больше, чем то, которое
// на данный момент хранится в переменной max, то
                if (matrix[i][j]>max) 
                {
                    max = matrix[i][j]; // присвоить переменной max это значение
                    
// "Запомнить" в какой ячейке массива найдено максимальное значение (в отдельные
// переменные сохраняются индексы ячейки):                 
                    max_k_n = i;
                    max_k_m = j;
                }
 
 // Если значение, хранящееся в текущем элементе массива меньше, чем то, которое
// на данный момент хранится в переменной min, то               
                if (matrix[i][j]<min)
                {
                    min = matrix[i][j]; // присвоить переменной min это значение
                    
// "Запомнить" в какой ячейке массива найдено миниимальное значение (в отдельные
// переменные сохраняются индексы ячейки): 
                    min_k_n = i;
                    min_k_m = j;
                }
            }
        }
// Создание массива int return_matrix[4]. Выделение памяти для 4 интов:
        int *return_matrix = (int*)malloc(sizeof(int)*4);
        
// Инициализация элементов массива значениями:
        return_matrix[0] = max_k_n;
        return_matrix[1] = max_k_m;
        return_matrix[2] = min_k_n;
        return_matrix[3] = min_k_m;
 
// Вернуть в вызывающую функцию указатель на массив return_matrix:    
        return return_matrix;
    }
}
P.S. Что такое NULL и почему его не стоит использовать в современных C++ программах.

P.P.S. Поморока с параметром функции в виде указателя на указатель на тип int - это попросту трик (хитрость), с помощью которого функции в качестве параметра можно передать двумерный массив (матрицу). То же самое с возвращаемым значением (указатель на int). В языке программирования C++ нельзя передать в функцию массив или вернуть массив из функции, зато можно передать указатель (ну или, при надобности - вернуть в качестве возращаемого значения указатель).
Так что если массив одномерный, то работаете с указателем первого уровня (с одной звёздочкой который).
Если же массив двумерный (матрица), то работаете с указателем второго уровня (с двумя звёздочками).

Вернуться к обсуждению:
Сравнение двумерных матриц - разобрать код C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2014, 14:36
Готовые ответы и решения:

Сравнение двумерных массивов
Здравствуйте. Подскажите пожалуйста , что сделать с кодом. Я так понимаю, ошибка в не дописанной...

Перегрузка сложения для двумерных матриц
Имеется класс для работы с матрицами размера 3 на 3: class Matrix{ private: int aMas ; ...

Сравнение двух двумерных массивов
Всем привет ) Только начинаю работать с С++. Помогите разобраться с задачей, нужно сравнить два...

Сравнение двух двумерных массивов
Мой алгоритм: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { int...

27
20.08.2014, 14:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2014, 14:36
Помогаю со студенческими работами здесь

Матрицы: сложения двух матриц (двумерных массивов)
Необходимо написать программу сложения двух матриц (двумерных массивов) на языке СИ++. Даны...

Сравнение элементов двух двумерных массивов
Прошу помощи в написании данной задачи. Написал сам все что мог, выдает ошибку error C2447: '{' :...

Сравнение элементов двух двумерных массивов
Нужна очень ваша помощь!!!!не могу разобраться с двумерными массивами!!помогите!!Люди!!помогите с...

Объявить два двумерных массива (матрицы) и подсчитать сумму этих матриц
Объявить два двумерных массива (матрицы) и подсчитать сумму этих матриц.

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