Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
#1

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

15.05.2010, 20:11. Просмотров 1833. Ответов 32
Метки нет (Все метки)

Помогите курсовик дали,помогите с началом программы:



Написать программу, которая позволяет осуществить ввод 2-х матриц одинакового размера (размер может варьироваться) и выполнить следующие операции:
- сложить введенные матрицы;
http://www.cyberforum.ru/cpp-beginners/thread130154.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2010, 20:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать программу, которая позволяет осуществить ввод 2-х матриц одинакового размера (C++):

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

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

Заданные две квадратные матрицы одинакового размера - А и В. Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и
Заданные две квадратные матрицы одинакового размера - А и В. Переписать в...

Разработать алгоритм и написать по нему программу сложения матриц А и В размера m × n
Задача 2. Разработать алгоритм и написать по нему программу сложения матриц А и...

Написать программу, которая выполняет умножение двух матриц
Написать программу, которая выполняет умножение двух матриц (матрицы не...

32
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 20:13 #2
Сложить матрицы?
Это каждый элемент сложить с ему соответствующим?
0
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 20:19  [ТС] #3
да,помогите,ща пытаемся сделать начало не выходит
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 20:36 #4
Это требовалось?

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
#include <iostream>
#include <iomanip>
#include <ctime>
 
int main ()
{
    const int size=10;
    int A[size]; // первая матрица.
    int B[size]; // вторая матрица.
    int Rezult[size]; // конечная матрица.
    srand(time(NULL));
 
    std::cout << "Start matrix A:\n";
    for (int i=0; i<size; i++) {
        A[i]=rand()%100+1;
        std::cout << std::setw(4) << A[i]; }
    std::cout << std::endl;
 
    std::cout << "Start matrix B:\n";
    for (int i=0; i<size; i++) {
        B[i]=rand()%100+1;
        std::cout << std::setw(4) << B[i]; }
    std::cout << std::endl;
 
    std::cout << "Finish matrix:\n";
    for (int i=0; i<size; i++) {
        Rezult[i]=A[i]+B[i];
        std::cout << std::setw(4) << Rezult[i]; }
 
    std::cout << std::endl;
    system("pause");
    return 0;
}
0
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 21:26  [ТС] #5
Слушай а что нужно исправить если использовать ее под С

Добавлено через 42 минуты
Вобщем разобрался только матрица всегда выходит из 10 символов,нужно чтоб она варьировалась
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 21:28 #6
Размер можно изменить, он задается в строке #7.
Варьировалась? Можно подробнее?
0
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 21:29  [ТС] #7
я понял что в 7 меняется,но например чтоб при каждом старте я вводил размер обоих матриц,который нужен мне
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 21:32 #8
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 <iostream>
#include <iomanip>
#include <ctime>
 
int main ()
{
    int size;
    std::cout << "Input size of matrix: ";
    std::cin >> size;
 
    int *A=new int [size]; // первая матрица.
    int *B=new int [size]; // вторая матрица.
    int *Rezult=new int [size]; // конечная матрица.
    srand(time(NULL));
 
    std::cout << "Start matrix A:\n";
    for (int i=0; i<size; i++) {
        A[i]=rand()%100+1;
        std::cout << std::setw(4) << A[i]; }
    std::cout << std::endl;
 
    std::cout << "Start matrix B:\n";
    for (int i=0; i<size; i++) {
        B[i]=rand()%100+1;
        std::cout << std::setw(4) << B[i]; }
    std::cout << std::endl;
 
    std::cout << "Finish matrix:\n";
    for (int i=0; i<size; i++) {
        Rezult[i]=A[i]+B[i];
        std::cout << std::setw(4) << Rezult[i]; }
 
    std::cout << std::endl;
    delete []A;
    delete []B;
    delete []Rezult;
    system("pause");
    return 0;
}
?
1
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 21:40  [ТС] #9
Огромное спосибо,есть еще небольшая просьба оч прошу
- умножить полученную матрицу на некоторое число, введенное с клавиатуры;
- транспонировать матрицу, полученную после умножения.
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
15.05.2010, 21:52 #10
demonzvz, у меня похожая проблема)
0
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 21:57  [ТС] #11
Цитата Сообщение от neske Посмотреть сообщение
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 <iostream>
#include <iomanip>
#include <ctime>
 
int main ()
{
    int size;
    std::cout << "Input size of matrix: ";
    std::cin >> size;
 
    int *A=new int [size]; // первая матрица.
    int *B=new int [size]; // вторая матрица.
    int *Rezult=new int [size]; // конечная матрица.
    srand(time(NULL));
 
    std::cout << "Start matrix A:\n";
    for (int i=0; i<size; i++) {
        A[i]=rand()%100+1;
        std::cout << std::setw(4) << A[i]; }
    std::cout << std::endl;
 
    std::cout << "Start matrix B:\n";
    for (int i=0; i<size; i++) {
        B[i]=rand()%100+1;
        std::cout << std::setw(4) << B[i]; }
    std::cout << std::endl;
 
    std::cout << "Finish matrix:\n";
    for (int i=0; i<size; i++) {
        Rezult[i]=A[i]+B[i];
        std::cout << std::setw(4) << Rezult[i]; }
 
    std::cout << std::endl;
    delete []A;
    delete []B;
    delete []Rezult;
    system("pause");
    return 0;
}
?
А как бы реализовать что значение в матрице были не рендом а вводились с клавиатуры?
0
FerMen
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 17
15.05.2010, 22:02 #12
вот глянь тут http://www.cyberforum.ru/cpp-beginners/thread48705.html
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 22:02 #13
Добавил тут кое-что, так пойдет?)
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
#include <iomanip>
#include <ctime>
void show (const int*, int);
 
int main ()
{
    int size;
    std::cout << "Input size of matrix: ";
    std::cin >> size;
 
    int *A=new int [size]; // первая матрица.
    int *B=new int [size]; // вторая матрица.
    int *Rezult=new int [size]; // конечная матрица.
    srand(time(NULL));
 
    std::cout << "Start matrix A:\n";
    for (int i=0; i<size; i++)
        A[i]=rand()%100+1;
    show (A, size);
 
    std::cout << "Start matrix B:\n";
    for (int i=0; i<size; i++)
        B[i]=rand()%100+1;
    show (B, size);
 
    std::cout << "Finish matrix:\n";
    for (int i=0; i<size; i++)
        Rezult[i]=A[i]+B[i];
    show (Rezult, size);
 
    std::cout << "Enter number: ";
    int num; std::cin >> num;
    std::cout << std::endl;
 
    std::cout << "Finish matrix, after multiplication:\n";
    for (int i=0; i<size; i++)
        Rezult[i]*=num;
    show (Rezult, size);
 
    int tmp;
    std::cout << "Finish matrix, after transfor:\n";
    for (int i=0; i<size; i++)
        for (int j=0; j<i-1; j++) {
            tmp=Rezult[i];
            Rezult[i]=Rezult[j];
            Rezult[j]=tmp; }
    show (Rezult, size);
 
    delete []A;
    delete []B;
    delete []Rezult;
    system("pause");
    return 0;
}
 
void show (const int *MAS, int size)
{
    for (int i=0; i<size; i++)
        std::cout << std::setw(4) << MAS[i];
    std::cout << std::endl;
}
1
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 22:04  [ТС] #14
Блин суперр спс,посмотри выше ссообщение мое плиз))
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 22:09 #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
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
#include <iostream>
#include <iomanip>
void show (const int*, int);
 
int main ()
{
    int size;
    std::cout << "Input size of matrix: ";
    std::cin >> size;
 
    int *A=new int [size]; // первая матрица.
    int *B=new int [size]; // вторая матрица.
    int *Rezult=new int [size]; // конечная матрица.
 
    std::cout << "Fill of matrix A:\n";
    for (int i=0; i<size; i++) {
        std::cout << "A["<< i <<"]: ";
        std::cin >> A[i]; }
 
    std::cout << "Fill of matrix B:\n";
    for (int i=0; i<size; i++) {
        std::cout << "B["<< i <<"]: ";
        std::cin >> B[i]; }
 
    std::cout << "Matrix A:\n";
    show (A, size);
    std::cout << "Matrix B:\n";
    show (B, size);
 
    std::cout << "Finish matrix:\n";
    for (int i=0; i<size; i++)
        Rezult[i]=A[i]+B[i];
    show (Rezult, size);
 
    std::cout << "Enter number: ";
    int num; std::cin >> num;
    std::cout << std::endl;
 
    std::cout << "Finish matrix, after multiplication:\n";
    for (int i=0; i<size; i++)
        Rezult[i]*=num;
    show (Rezult, size);
 
    int tmp;
    std::cout << "Finish matrix, after transfor:\n";
    for (int i=0; i<size; i++)
        for (int j=0; j<i-1; j++) {
            tmp=Rezult[i];
            Rezult[i]=Rezult[j];
            Rezult[j]=tmp; }
    show (Rezult, size);
 
    delete []A;
    delete []B;
    delete []Rezult;
    system("pause");
    return 0;
}
 
void show (const int *MAS, int size)
{
    for (int i=0; i<size; i++)
        std::cout << std::setw(4) << MAS[i];
    std::cout << std::endl;
}
1
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 22:44  [ТС] #16
void show (const int *MAS, int size)
{ <------------------------
for (int i=0; i<size; i++)
std::cout << std::setw(4) << MAS[i];
std::cout << std::endl;
}

Пишет Declaration synax error в чем может быть проблема?
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 22:58 #17
честно, не знаю)
у меня нету такого.
0
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 23:30  [ТС] #18
void show (const int *MAS, int size)
а тут в конце ; не надо?
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
15.05.2010, 23:32 #19
Когда мы пишем прототип к функции, нужно.
Когда саму функцию, не нужно конечно.
Какой у вас компилятор?
0
demonzvz
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 15
15.05.2010, 23:35  [ТС] #20
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
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <stdio.h>
void show(const int*,int);
 
int main ()
{   
    int size;
    int num,tmp,i,j;
    printf("vvedite razmer matrici");
    cin>>size;
 
    int *A=new int [size];
    int *B=new int [size];
    int *Rezult=new int [size];
    
 
    
    printf("a matr:\n");
        for (i=0; i<size; i++)
        {
        cout<<"A["<<i<<"];";
        cin>>A[i];
        }
                
     printf("b matr:\n");
     for (i=0; i<size; i++)
     {
    cout<<"B["<<i<<"];";
    cin>>B[i];
    }
    printf("matr A;\n");
    show(A,size);
    printf("Matr B:\n");
    show(B,size);
 
 
    printf("Finish matrix:\n");
    for (i=0; i<size; i++) {
        Rezult[i]=A[i]+B[i];
      show(Rezult,size);
 
      printf("vvedite chislo");
      cin>>num;
      cout<<endl;
 
 
      printf("Poluchenna matrica =:\n");
      for (i=0;i<size;i++)
      Rezult[i]*=num;
      show(Rezult,size);
 
      printf("Finish Tmp=:\n");
      for(i=0;i<size;i++)
      for (j=0;j<i-1;j++)
      
      {
      tmp=Rezult[i];
      Rezult[i]=Rezult[j];
      Rezult[j]=tmp;
     }
     show(Rezult,size);
 
     delete[]A;
     delete[]B;
     delete[]Rezult;
     system("pause");
     return 0;
}
void show (const int *MAS, int size)
{
    for (int i=0; i<size; i++)
        cout << setw(4) << MAS[i];
    cout << endl;
}
можеш проверить что не так я использую без std а то с ним не запускается
0
15.05.2010, 23:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2010, 23:35
Привет! Вот еще темы с решениями:

Написать программу, которая вычерчивает на экране узор из 50 прямоугольников случайного размера и цвета
Написать программу, которая вычерчивает на экране узор из 50 прямоугольников...

Написать программу с ипользованием матриц, которая объеденяет два упорядоченных по возростанию массива в один
Здравствуйте! Возникла такая проблема,сегодня узнал,что нужно переделать массив...

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

Prolog. Написать программу, которая осуществляет ввод с клавиатуры номера элемента и выводит значение для последовательности
Написать программу, которая осуществляет ввод с клавиатуры номера элемента и...


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

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

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