#include "stdafx.h"
#include <locale>
#include <vector>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
#include <numeric>
#include "stdio.h"
#include <conio.h>
using namespace std;
int i,s1,s2,n1,n2;
double sum(double a) { return a+1; }
template <typename T, size_t Rows>
struct avg : public std::unary_function<const T (&)[Rows], double>
{
T operator()(const T (&arr)[Rows]) const
{
return std::accumulate(arr, arr + Rows, T()) / Rows;
}
};
template <typename T, size_t Cols, size_t Rows>
void go(T (&m)[Cols][Rows])
{
double maxel;
std::vector<T> v(Cols);
maxel=*std::max_element(v.begin(),
std::transform(m, m +Cols , v.begin(), avg<T, Rows>()));
std::cout << "\n Максимальный среднее арифметическое=" <<maxel ;
std::transform(
&m[s1][0], &m[s1][0] + Rows*n1, &m[s1][0],//Cols
std::bind2nd(std::minus<T>(), maxel)
);
if (i==2) {
std::transform(
&m[s2][0], &m[s2][0] + Cols*n2, &m[s2][0],
std::bind2nd(std::minus<T>(), maxel)
);
}
}
template <typename T, size_t Rows>
struct X : public std::unary_function<const T (&)[Rows], void>
{
X(std::ostream& os) : os_(os) {}
void operator()(const T (&arr)[Rows]) const
{
typedef std::ostream_iterator<T> O;
std::copy(arr, arr+Rows, O(os_, "\t"));
os_ << std::endl;
}
std::ostream& os_;
};
template <typename T, size_t Cols, size_t Rows>
std::ostream& operator<< (std::ostream& os, const T (&m)[Cols][Rows])
{
std::for_each(m, m+Cols, X<T, Rows>(os));
return os;
}
int main()
{
int ii=1;
setlocale(LC_ALL, "");
double me;
double m[3][4];
std::cout << "Введит матрицу:"<<endl ;
for(int i=0; i<3;i++){
for(int j=0; j<4;j++)
std::cin >> m[j];
}
s1=0 ; s2=0 ; n1=3 ; n2=0 ;
std::cout << "Введите номер строки:" ;
std::cin >> i;
if (i==1) {s1=1; n1=3; }
if (i==2) {s1=0; n1=1; s2=2; n2=2;}
if (i==3) {s1=0; n1=2; }
std::cout << "До:" << std::endl << m << std::endl;
go(m);
std::cout<<"\n****************************************\n";
std::cout << "После:" << std::endl << m;
while (ii)
{
if (getch()==27) ii=0;
}
return 0;
}
Блок-схемы
Может кто-нибудь помочь с реализацией блок-схемы?
возможно, стоит поискать в сети программы для построения блок-схем по исходным кодам? вряд ли кто-то будет разбираться в коде, тем более рисовать блок-схемы.
а еще проще взять карандашик в руки и нарисовать, ничего сложного нет