Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Блок-схемы

51K
29 марта 2011 года
Scoler
26 / / 08.01.2011
Может кто-нибудь помочь с реализацией блок-схемы?
Код:
#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;
}
316
29 марта 2011 года
Alm3n
889 / / 29.05.2009
возможно, стоит поискать в сети программы для построения блок-схем по исходным кодам? вряд ли кто-то будет разбираться в коде, тем более рисовать блок-схемы.
1.8K
30 марта 2011 года
LM(AL/M)
332 / / 20.12.2005
а еще проще взять карандашик в руки и нарисовать, ничего сложного нет
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог