С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
1

Каким может быть максимальное число строк и столбцов матрицы

28.02.2010, 19:12. Просмотров 1192. Ответов 15
Метки нет (Все метки)

Здрасти, функция
C++
1
int** CreateMatrix(int count_row,int count_col)
создает двумерный дин. массив, в качестве параметров-количество строк и столбцов.
А какое максимаоьное количество строк и столбцов можно вписать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2010, 19:12
Ответы с готовыми решениями:

Найти максимальное число которое может быть представлено как сумма степеней 2, 3 и 4 простых чисел
Найти максимальное число, меньшее заданного, которое может быть представлено...

По каким причинам память не может быть выделена динамически?
Что это могут быть за причины?

Вывести на экран номера столбцов матрицы, сумма которых превышает заданную величину, и число таких столбцов
Всем привет!:) Прошу помощи в написании программы, а точнее доведении ее до...

Вывести несколько строк, и проверить может ли этот текст быть классом
Всем привет. Помогите плз решить задачку, только программа должна быть без...

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

15
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 19:49 2
А какое максимаоьное количество строк и столбцов можно вписать?
На сколько память хватит..


Это не единственная разновидность создания матрицы:
Вот пример другого прототипа подходящего для создания матрицы:
C++
1
HRESULT CreateMatrix(int ***matrix,const int H,const int W);
1
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
28.02.2010, 20:15  [ТС] 3
а если я введу например количество строк больше чем int?
0
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 20:38 4
Легко проверить: открой диспетчер задач после выделения памяти,
и посмотри сколько памяти занимает процесс.
Когда выделяешь много памяти это явно видно в диспетчере задач.

А насчет превышения значения int я не пробовал, ты попробуй с диспетчером Windows,
и посмотри что он покажет.
Если памяти выделится навалом, ты это увидишь в диспетчере.
1
CyBOSSeR
Эксперт С++
2313 / 1686 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
28.02.2010, 20:46 5
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Вот пример другого прототипа подходящего для создания матрицы:
C++
1
HRESULT CreateMatrix(int ***matrix,const int H,const int W);
Genius Ignat, const перед H и W совершенно ни к чему.
Даже если внутри функции изменить их значения, это не повлияет на переменные, переданные вызывающей функцией.
1
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 20:58 6
а если я введу например количество строк больше чем int?
А зачем тебе столько.
Если хочешь больше чем int используй тип больше допустим такой:
C++
1
typedef unsigned __int64 QWORD;
Добавлено через 9 минут
Даже если внутри функции изменить их значения, это не повлияет на переменные, переданные вызывающей функцией.
CyBOSSeR:
Может надо что бы переменные(локальные параметры) не меняли своего значения,
но в моем примере, const конечно ни к чему, тем более в такой простой функции.

C++
1
2
3
4
5
6
7
8
9
10
11
void f(const int a);
int main(){
 
 
return 0;
}
void f(const int a){
a++;  //ошибка.
//Параметр изменить нельзя, внутренний параметр используется только для чтения.
 
}
Может и в этом необходимость бывает...

В основном const используется что бы массивы в вызывающей функции не менялись(чтение) так
как массивы всегда передаются по адресу.
1
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
28.02.2010, 21:15  [ТС] 7
Цитата Сообщение от Genius Ignat Посмотреть сообщение
а если я введу например количество строк больше чем int?
просто в универе задали посчитать сколько оперативки потребуется для программы, и вот если пользователь введет кол-во столбцов 3 а строк 5 то это один объем, а если 1000 на 1000 это уже другой, а может и вообще 50000000000 на 5000000000 вот и не знаю как посчитать,
0
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 21:24 8
Genius Ignat, const перед H и W совершенно ни к чему.
Даже если внутри функции изменить их значения, это не повлияет на переменные, переданные вызывающей функцией.
Уж на такие вещи пусть начинающие смотрят, если им интересно:
все параметры это l -value и при вызове происходит присваивание им значений: "гипнотически" продолжение кода: то есть при вызове: f(d); //происходит следующее const int a = d;

Я Функцию всегда вижу как продолжение кода
(с отделением блоком кода, что бы не было
возможного совпадения имен).
При входе в блок память выделятся а при выходе освобождается, всё по закону стека: LIFO.

Добавлено через 5 минут
50000000000
Измерить так: size*sizeof(тип матрицы);

Добавлено через 21 секунду
Размер в байтах
1
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
28.02.2010, 21:26  [ТС] 9
Genius Ignat, а что мне писать в системных требованиях(в лабораторной)? сколько требуется оперативки для программы?
0
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 21:31 10
#include <iostream.h>
C++
1
2
3
4
5
6
7
8
9
10
11
int main(){
int H;
int W;
cout<<"input H\t";cin>>H;
cout<<"input W\t";cin>>W;
 
//вычисляем сколько байт потребуется для хранения матрицы:
cout<<H*W*sizeof(int);
cout<<'\n';
return 0;
}
1
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
28.02.2010, 21:34  [ТС] 11
а как узнать сколько места программа на харде занимает?

Добавлено через 20 секунд
просто правой кнопкой и свойства?
0
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 21:39 12
typedef unsigned __int64 QWORD;
Это лучше не используй.
так как cin и cout работать с этим типом не будут

Используй long double для больших расчетов.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
int main(){
long double H;
long double W;
cout<<"input H\t";cin>>H;
cout<<"input W\t";cin>>W;
 
 
long double memory = H*W*sizeof(int);
cout<<memory<<'\n';
return 0;
}
0
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
28.02.2010, 21:41  [ТС] 13
Genius Ignat, я запутался) этот код для определения количества ОП или количества памяти на харде?
0
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 21:41 14
просто правой кнопкой и свойства?
Так конечно, хотя у меня проводник и при наведении мыши на файл exe, показывает размер
файла автоматически.
1
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
28.02.2010, 21:44  [ТС] 15
все, спасибо, теперь более менее понятно
0
Genius Ignat
1243 / 781 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 21:46 16
Genius Ignat, я запутался) этот код для определения количества ОП или количества памяти на харде?
ОП.

При записи на жесткий диск матрица займет места столько же сколько и в ОП, плюс минус погрешности
которые в расчет брать не стоит.

Добавлено через 1 минуту
Так конечно, хотя у меня проводник и при наведении мыши на файл exe, показывает размер
файла автоматически.
ЧТо то не в тему ляпнул.
0
28.02.2010, 21:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2010, 21:46

Выведите максимальное число покемонов, которых Баш может взять
Баш отправился в путешествие, чтобы стать величайшим мастером Покемонов. Чтобы...

Ошибка при вводе разного кол-ва строк и столбцов в матрицы. Динамич. матрицы/массивы
Дана матрица, размерность вводит пользователь, данные тоже. Осуществить...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru