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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Конус в С++.. http://www.cyberforum.ru/cpp-beginners/thread330863.html
Ребят всем привет! Я новичок в программировании,пробовал только писать немного в Паскале,мне в универе дали задание изобразить конус,параллелограмм вписанный в конус на С++ Подскажите пожалуйста,с чего мне начать,какую литературу прочесть,в каких копиляторах работать!
C++ Методы оптимизации памяти Написал статью по оптимизации памяти в программах на С++. Ее можно почитать тут: http://itw66.ru/blog/c_plus_plus/491.html А какие методы вы можете предложить по повышению эффективности программы, при помощи организации данных в памяти определенным образом? http://www.cyberforum.ru/cpp-beginners/thread330826.html
Вопрос начинающего C++
Здравствуйте. Мне сейчас 16 лет и в сентябре я пойду в 11 класс (я школота). В будущем я хочу стать программистом. Сейчас я уже учу С++ (немножко могу гонять в консоли) и немножко Delphi. Как мне дальше строить своё развитие как программиста? Что читать/писать/учить/делать, чтобы как можно раньше начать работать по специальности и стать хорошим специалистом? Прошу помощи, так как, по...
C++ Сетевая карта
Добрый вечер. Подскажите в какую сторону смотреть и какие маны читать. Задача: узнать сколько у сетевой карты ethernet портов, узнать их адреса, попробовать послать в них и принять из них данные. :) Добавлено через 17 минут ОС : Windows
C++ Может кому понадобится http://www.cyberforum.ru/cpp-beginners/thread330768.html
Кое-что из динамического программирования... Задача подсчёта в прямоугольной матрице количества связных областей (областей состоящих из смежных клеток) . В данном случае вводится матрица из нулей и единиц. Будет подсчитываться кол-во областей состоящих из единиц. 0 - пустая клетка. Например, я ввожу следующую матрицу размеров 3x5 : 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 В ней кол-во областей из...
C++ Динамическое программирование Помогите пожалуйста,кто может, со следующими задачами, так как в С++ слабо разбираюсь, а к понедельнику надо сдать... 1. Определить сколько в линейном массиве групп одинаковых идущих подряд элементов. 2. Даны длины двух сторон треугольника и один из его углов. Определить максимальный периметр треугольника, который можно построить из этих элементов. 3. Даны символьные строки. Определить общую... подробнее

Показать сообщение отдельно
Vladi_mir
Сообщений: n/a
08.07.2011, 11:24     Модульное программировапние на С++ (консоль)
Помогите пожалуйста подкорректировать код.
Задание было таким: Разместить определение данных в заголовочном файле, а определения функций и главную функцию программы в двух отдельных файлах.
Вариант
Даны квадратная матрицаА порядка п и вектор 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;
}
 Комментарий модератора 
Используйте теги форматирования кода!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru