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

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

Войти
Регистрация
Восстановить пароль
 
Vladi_mir
Сообщений: n/a
#1

Модульное программировапние на С++ (консоль) - C++

08.07.2011, 11:24. Просмотров 707. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста подкорректировать код.
Задание было таким: Разместить определение данных в заголовочном файле, а определения функций и главную функцию программы в двух отдельных файлах.
Вариант
Даны квадратная матрицаА порядка п и вектор b с п элементами. Получить вектор , где Е – единичная матрица. Определить функции формирования единичной матрицы и умножения квадратной матрицы на вектор.
Вот что у меня получилось

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
#include "func.h"
using namespace std;
 
int main()
{
 Matrix A;
 Matrix E;
 Vector b;
 Vector res;
 
 cout<<"Input matrix A:"<<endl;
 Input(A);
 cout<<"Input vector b:"<<endl;
 Input(b);
 
 cout<<"Matrix A:"<<endl;
 Print(A);
 cout<<"Vector b:"<<endl;
 Print(b);
 
 Matrix tmp;
 Subtrac(tmp,A,E);
 Multi(res,b,tmp);
 
 cout<<"Calculate (A-E)*b "<<endl;
 Print();
 return 0;
}
Библиотека:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef FUNC_H_INCLUDED
#define FUNC_H_INCLUDED
#include <iostream>
 
using namespace std;
 
#define N 3
typedef double Matrix[N][N]; //матрица А
typedef double Vector[N];   // вектор b
 
void Input(double (&m)[N][N]);
void Input(double (&vb)[N]);
 
void Print(double (&m)[N][N]);
void Print(double (&vb)[N]);
 
void Subtrac(double (double (&m)[N][N], double (&n)[N][N]);
void Multi(double (&res)[N],double (&m)[N][N], double (&vb)[N]);
 
#endif // FUNC_H_INCLUDED
_________________________________________________

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
81
82
#include "func.h"
 
// Заполнение матрицы А:
void Input(double (&m)[N][N])
{
 for(int i=0;i<N;i++)
 {
  for(int j=0;j<N;j++)
  {
   cin>>m[i][j];
  }
  cout<<endl;
 }
}
// Ввод координат вектора b:
void Input(double (&vb)[N])
{
 for(int i=0;i<N;i++)
 {
  cin>>vb[i];
 }
}
 
// Вывод на экран матрицы А:
void Print(double (&m)[N][N])
{
 cout<<endl;
 for(int i=0;i<N;i++)
 {
  for(int j=0;j<N;j++)
  {
   cout<<m[i][j]<<"\t";
  }
  cout<<endl;
 }
 cout<<endl;
}
// Вывод на экран вектора b:
void Print(double (&vb)[N])
{
 cout<<endl;
 for(int i=0;i<N;i++)
 {
  cout<<vb[i]<<"\t";
 }
 cout<<endl;
}
 
// Создание единичной матрицы Е:
void Matrix_E(double n[N][N])
{
 for(int i=0;i<N;i++)
 {
    for(int j=0;j<N;j++)
    {
        n[i][j] = 1.0;
    }
 }
}
// Вычисление А-Е
// где Е - единичная матрица
void Subtrac(double (double (&m)[N][N], double (&n)[N][N])
{
 for(int i=0;i<N;i++)
 {
    for(int j=0;j<N;j++)
    {
        m[i][j] = m[i][j] - n[i][j];
    }
 }
 
}
void Multi(double (&res)[N],double (&m)[N][N], double (&vb)[N])
{
 for(int i=0;i<N;i++)
 {
  res[i] = 0;
  for(int j=0;j<N;j++)
   res[i] += m[i][j]*vb[j];
 }
 cout<<endl;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2011, 11:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Модульное программировапние на С++ (консоль) (C++):

Модульное программирование - C++
Прошу помощи в решении моей задачи.Заранее благодарен. &quot;Модульное программирование&quot; Примечание. Разместить определение данных в...

Модульное программирование в с++ - C++
Привет всем. Проблема такая.. Есть модуль данных. Так вот надо мне использовать эти переменные (или константы) в других модулях. В...

Модульное программирование - C++
Привет форумчане! В общем, решил сделать модуль с 3-мя ф-циями: mod.h void ChangeNumber(sport * obj, int n); void...

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

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

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

2
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.07.2011, 11:35 #2
не вижу конкретного вопроса

Добавлено через 45 секунд
и выделите код тегами кода пожалуйста
0
olympian
2 / 2 / 0
Регистрация: 18.10.2008
Сообщений: 33
08.07.2011, 14:49 #3
Цитата Сообщение от Maxwe11 Посмотреть сообщение
и выделите код тегами кода пожалуйста
И еще отступы не забудьте! Иначе никто код читать не будет.
И не нужен весь код - только участок, по которому вопрос.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2011, 14:49
Привет! Вот еще темы с ответами:

С++ Unit Test (модульное тестирование) - C++
Вопроса по сути два. 1. что используете для модульного тестирования и почему отдаете этому предпочтение. 2. если используете eclipse,...

Модульное деление на степень двойки - C++
Раньше я всегда использовал примерной такой подход : int mod = 8; int a = 90412488; char b = 113; int modA, modB; modA = a &amp;...

Шаблоны функциональных классов, модульное программирование - C++
Пишу лабораторную по C++. Суть состоит в том, что нужно описать шаблоны функциональных классов, методы которых должны быть описаны вне...

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


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

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

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