Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.97
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
#1

Написать программу, которая позволяет осуществить ввод матрицы произвольного размера - C++

15.05.2010, 21:49. Просмотров 4164. Ответов 35
Метки нет (Все метки)

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

Добавлено через 2 минуты
Пишу курсовик на языке Си) вроде начал, но чет не работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2010, 21:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая позволяет осуществить ввод матрицы произвольного размера (C++):

Написать программу, которая позволяет осуществить ввод 2-х матриц одинакового размера - C++
Помогите курсовик дали,помогите с началом программы: Написать программу, которая позволяет осуществить ввод 2-х матриц...

Написать программу транспонирования квадратной матрицы произвольного размера - C++
Написать программу транспонирования квадратной матрицы произвольного размера. Значения элементов матрицы вводятся из файла. Результат...

Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные - C++
нужно составить текст программы, которая позволяет по введенной строке поменять первые буквы каждого слова на прописные. Вывести на экран...

Написать программу, которая по последней цифре числа позволяет определить последнюю цифру его квадрата - C++
13 Написать программу, которая по последней цифре числа позволяет определить последнюю цифру его квадрата. Использовать оператор выбора...

Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р выбрать из та - C++
Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р...

Матрицы произвольного размера. - C++
Помогите пожалуйста написать программу, которая будет работать с матрицами произвольного размера. необходимо определить для матриц операции...

35
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
15.05.2010, 21:56 #2
Попробуй поискать тут
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
15.05.2010, 23:57  [ТС] #3
Цитата Сообщение от Red Planet Посмотреть сообщение
Попробуй поискать тут
спасибо, сейчас посмотрю

Добавлено через 56 секунд
а как сначала написать, что бы просто ввести матрицу произвольного размера?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
main()
{
  int i,j;
  float n;
  printf("Input size of matrix:");
  scanf("%d",&n);
  printf("Fill of matrix\n",&n);
  for (i=0; i<n; i++)
    for (j=0; j<n; j++)
       scanf("%f",&n[i][j]);
  getch();
}
подскажите, что не так
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,982
16.05.2010, 00:00 #4
FerMen, а где у вас сама матрица объявлена?
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
16.05.2010, 00:37  [ТС] #5
Добавлено через 12 минут
а так?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
main()
{
  int i,j,n[5][5];
  printf("Input size of matrix:");
  scanf("%d",&n);
  printf("Fill of matrix\n",&n);
  for (i=0; i<n; i++)
    for (j=0; j<n; j++)
       scanf("%f",&n[i][j]);
  getch();
}
0
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
16.05.2010, 10:59 #6
FerMen, я бы рекомендовал класс написать.
Примерно так:
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 <cstdlib>
#include <iostream>
using namespace std;
 
class Matrix
{
 private: unsigned int n, m; //cols and rows.
 public: double **matr; //Память под матрицу.
 Matrix ()
 {
  cout <<"Rows: ";
  cin >>n;
  cout <<"Cols: ";
  cin >>m;
  matr = new double *[n];
  for (int i=0; i<m; i++) matr[i] = new double [m];
 }//Конструктор по умолчанию.
 
 void input () 
 {
      for (int i=0; i<n; i++)
      {
          for (int j=0; j<m; j++)
          {
              cout <<"a"<<i<<j<<"=";
              cin >>matr[i][j];
          }//j.
      }//i.
 }//Ввод матрицы.
              
};
 
int main(int argc, char *argv[])
{
    Matrix m1;
    m1.input ();
    system("PAUSE");
    return EXIT_SUCCESS;
}
Это только так, начало. Делаю на скорую руку, спешу.
P.S. Класс использовать тут рекомендую в принципе.
1
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
16.05.2010, 11:57  [ТС] #7
кул)) ща гляну..
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
21.05.2010, 10:27  [ТС] #8
в 16 и 25 строке выдает ошибку: functions containing for are not expanded inline
не пойму из-за чего, подскажитеПожайлуста
0
WoodyArt
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 14
21.05.2010, 10:38 #9
Можно вот так:
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
int MatrixWidth(){
    cout << "\nВведите ширину матрицы: ";
        int w;      //w - width
        cin >> w;
    return w;
}
 
void MatrixShow(const int* const* matrix, int w){
 
    for (int i = 0; i < w; ++i){
        cout << endl;
        for (int j=0; j < w; ++j){
            cout << matrix[i][j] << ' ';
        }
    }
}
 
int main()
{
    int w;                                    //
    w = MatrixWidth();                   //Задаём ширину матрицы
 
    int** matrix = new int*[w];       //Указатель на указатели ряда
 
    for(int i = 0; i < w; ++i)            //Указатель на столбцы
        matrix[i] = new int[w];
 
    for(int i = 0; i < w; ++i)            //заполняем массив
        for (int j=0; j < w; ++j){
             cout << "\nMatrix [" << i << "][" << j <<"] = ";
             cin >> matrix[i][j];
        }
 
    MatrixShow(matrix, w);
 
    for(int i = 0; i < w; ++i)       //Очищаем память
        delete [] matrix[i];
 
    delete [] matrix;
 
    return 0;
}
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
21.05.2010, 10:52  [ТС] #10
на 29 и 37 выдает: Multiple declaration for 'i'
0
WoodyArt
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 14
21.05.2010, 12:37 #11
C++
1
2
3
#include <cstdlib>
#include <iostream>
using namespace std;
вот это добавь в начало.

У меня компилятор MinGW, IDE - Code::Blocks, если что.
0
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
22.05.2010, 21:13 #12
В своем коде (сообщение №6) я не предусмотрел того, что к матрице нужно будет добавлять столбцы или строки. А теперь и самому стало интересно, как это делается. Насколько я знаю изменять размеры массива в ходе программы нельзя. С другой стороны есть vector, который изменять позволяет, но для него нужно объявить в начале, сколько в нем (в контейнере vector) элементов. Как быть в данной ситуации?

WoodyArt, в вашей программе тоже не нашел добавление столбцов.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.05.2010, 21:43 #13
В Си++ не знаю, но в Си есть realloc, как раз для изменения размера массива на лету
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
30.05.2010, 18:36  [ТС] #14
Red Planet подскажи, почему в 16 и 25 строке выдает ошибку: functions containing for are not expanded inline? (сообщение №6). Я уже все перепробывал, все равно не пойму
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
05.06.2010, 21:56  [ТС] #15
Вот текст программы, которая добавляет в матрицу столбец из единиц:
Подскажите, как сделать, что бы вместо единиц, я мог вписывать свои числа?
Помогите пожалуйста!! очень надо)


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
#include<iostream.h>
#include<conio.h>
 
void main ()
{
 int m,n,i,j,k;
 cout << "Enter M, N: ";
 cin >> m >> n;
 cout << endl << "Enter " << m*n << " elements of array: ";
 int **a = new int *[m];
 for (i=0; i<m; i++)
 {
 a[i] = new int [n];
 for (j=0; j<n; j++)
 cin >> a[i][j];
 }
do {
    cout << "Enter K: ";
    cin >> k;
    }
while(k<1 || k>n);
for (i=0, k--; i<m; i++){
    for (j=0; j<n; j++){
    cout << a[i][j];
    if (k==j) cout << "1";
        }
    cout << endl;
    }
getch();
}
0
05.06.2010, 21:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2010, 21:56
Привет! Вот еще темы с ответами:

Написать программу, которая вычерчивает на экране узор из 50 прямоугольников случайного размера и цвета - C++
Написать программу, которая вычерчивает на экране узор из 50 прямоугольников случайного размера и цвета. Зарание большое спасибО!

Перемножить матрицы произвольного размера - C++
#include &lt;iostream&gt; using std::cin; using std::cout; using std::endl; int main() { int n,m,c,r; //...

Класс, обеспечивающий представление матрицы произвольного размера - C++
помогите, Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменения числа строк и...

Составить описание класса, обеспечивающего представление матрицы произвольного размера - C++
вариант1 Условие задачи: Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменения...


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

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

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