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

Шаблоны - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ амёбы, бинарное размножение http://www.cyberforum.ru/cpp-beginners/thread108908.html
Одноклеточная амёба каждые 3 часа делится на 2 клетки.Определить, сколько амёб будет через 3,6,9,12,...24 часа??Подскажите, с чего начать??
C++ Сумма чисел числа n помогите пожалуста..нада прога чтоб найти сумму чисел числа n(если число 123 то найти 1+2+3) n должно задаватся в процессе http://www.cyberforum.ru/cpp-beginners/thread108905.html
Вычислить сумму ряда 1-3+5-7 для количества членов ряда, введенных пользователем и вывести на экран члены данного ряда. C++
1)Вычислить сумму ряда 1-3+5-7 для количества членов ряда, введенных пользователем и вывести на экран члены данного ряда. 2)Определить функцию, которая возвращает сумму цифр натурального числа. Получить ряд чисел от N1 до N2; каждое последующее число равно предыдущему плюс сумма его цифр, используя определённую функцию М i+1=Mi+Si, где Si – сумма цифр числа
C++ Написать программу для нахождения суммы членов арифметической прогрессии
как написать программу для нахождения суммы членов арифметической прогрессии, если известны её первый член, знаменатель и число членов прогресии????
C++ Используя механизм перегрузки функций, разработать две версии функции F http://www.cyberforum.ru/cpp-beginners/thread108873.html
Используя механизм перегрузки функций,разработать две версии функции F,заголовки которых выглядят так: 1) float F(float x); 2) void F(float x,float &y) Продемонстрировать работу данных функций на примере: У=1, если (х-1)<1; У=0, если (х-1)=1; У=-1, если (х-1)>1.
C++ Обработка бита Название Размерность Тип N 16 вход M 4 вх P 2 вх O 16 выход На вход N подается BCD число. Необходимо число стоящее в P-ой позиции BCD числа заменить на данное число M. На выходе О - полученное число. Примечание: В BCD-формате... подробнее

Показать сообщение отдельно
Kolich
 Аватар для Kolich
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 26
25.03.2010, 22:33     Шаблоны
Не пойму что я неправильно делаю. Как не переделывал, всё равно не получалось. Может кто сможет чем помочь. А задача следующая-надо было оформить каждый пункт этогокода в виде шаблона функций:
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
#include <cstdlib>
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    const int n=10,c=2;
    int a[n]={-3,1,7,6,-9,-1,-4,5,2,8};
    int i,count,max,proiz;
    for (count=i=max=0,proiz=1; i<n; i++){
        if (fabs(max)<fabs(a[i])) max=a[i];
        if (a[i]>c) count++;
        if (max<a[i])proiz=proiz*a[i];}
    cout<<"Kol-vo elementov bolshe C:"<<count<<endl;
    cout<<"Max modul:"<<max<<endl;
    cout<<"Proizvedenie"<<proiz<<endl;
    for (i=0; i<n-1; i++){
        int min=i;
        for (int j=i+1; j<n; j++)
        if (a[j]<a[min]) min=j;
    int b=a[i];
    a[i]=a[min];
    a[min]=b;}
    for (i=0; i<n; i++)cout<<a[i]<<' ';
    system("PAUSE");
    return EXIT_SUCCESS;
}
Вот что получилось:

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
#include <iostream>
#include <cstdlib>
#include <math.h>
 
using namespace std;
 
   /*
   В одномерном массиве, состоящем из n вещественных элементов, вычислить:
   1) количество элементов массива, больших С;
   2) произведение элементов массива, расположенных после максимального по модулю элемента.
   Преобразовать массив таким обрахом, чтобы сначала располагались все отрицательные а потом положительные.
   */
 
template<typename Type>
int counter(Type *a, int n, Type C)
{
   int kol=0;
   for (int i=0; i<n; i++)
      if (a[i] > C) kol++;
   return kol;
}
 
template<typename Type>
int proizv(Type *a, int n)
{
   int proiz=1;
   int max=1;
   for (int i=0; i<n; i++)
      if (fabs(max)<fabs(a[i])) max=i;
   for (int i=max+1; i<n; i++)
      proiz*=a[i];
}
 
template<typename Type>
void modify(Type *a, int n)
{
     int i;
    for (i=0; i<n-1; i++){
        int min=i;
        for (int j=i+1; j<n; j++)
        if (a[j]<a[min]) min=j;
    int b=a[i];
    a[i]=a[min];
    a[min]=b;}
}
 
template<typename Type>
void print(Type *a, int n)
{
     int i;
    for (i=0; i<n; i++)cout<<a[i]<<' ';
}
 
int main()
{
   const int n = 10, C=2;
   int proiz, max, i;
   int a[n] = {1,3,5,-9,6,8,-4,3,2,-6};
 
   cout << "KOl-vo: " << counter(a, n, C) << endl;
   cout << "Proizvedenie: " << proizv(a, n)<< endl;
   modify(a, n);
   print(a, n);
 
   system("pause");
   return 0;
}
Но у меня ни как не получается вычислить произведение элементов.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru