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

Вычислить среднее геометрическое. ФУНКЦИИ - C++

Восстановить пароль Регистрация
 
Twitosha
1 / 1 / 0
Регистрация: 02.03.2013
Сообщений: 29
03.05.2013, 09:30     Вычислить среднее геометрическое. ФУНКЦИИ #1
Вычислить среднее геометрическое для каждого элемента одномерного массива по следующему правилу : (см. картинку)
Использовать функцию вычисления среднего геометрического одномерного массива.
Миниатюры
Вычислить среднее геометрическое. ФУНКЦИИ  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2013, 09:30     Вычислить среднее геометрическое. ФУНКЦИИ
Посмотрите здесь:

C++ Вычислить среднее геометрическое элементов массива
Вычислить среднее геометрическое пяти вводимых чисел C++
C++ Вычислить среднее геометрическое элементов массива
Вычислить среднее арифметическое и среднее геометрическое нечетных чисел, кратных 7 в диапазоне от M1 до M2 C++
C++ Вычислить среднее геометрическое элементов натурального ряда от 1 до N
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IOO
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 4
03.05.2013, 12:54     Вычислить среднее геометрическое. ФУНКЦИИ #2
Если я правильно понял задание то вот код. Не так красиво но работает правильно

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
// test2.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <ctime>
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#include <math.h>
 
float Proizv(float c,float mas){   //Функция вычисляет произведение A[i] элементов массива
    c=c*mas;
    return c;
}
float func(){   //Задаем случайные элементы массива
    srand(time(NULL));
    int rnd=rand()*3;
    return rnd;
}
float Geometric(float proiz,float i){ //Высчитываем среднее геометрическое по приведенной формуле
float rez=0;
 rez=pow(proiz,1/i);
return rez;
}
int _tmain(int argc, _TCHAR* argv[])
{   
    float c=1;//обьявляем переменную для произведения A[i]
    float A[10];//обьявляем массивы
    float B[10];
    float proiz;
 
    for (int i=0;i<10;i++)
        {   
        A[i] = func();
        proiz=Proizv(c,A[i]);
        }
    for (int i=1;i<=10;i++){
        B[i]=Geometric(proiz,i);  
        printf("B[%d]=%lf \n",i,B[i]);//Печатаем результат
    }
getch();
        return 0;
}
Twitosha
1 / 1 / 0
Регистрация: 02.03.2013
Сообщений: 29
04.05.2013, 06:53  [ТС]     Вычислить среднее геометрическое. ФУНКЦИИ #3
в 25 строке ругается, пишет что _TCHAR* не была объявлена. А до меня не доходит где нам ее объявить. Не подскажите?
IOO
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 4
04.05.2013, 12:21     Вычислить среднее геометрическое. ФУНКЦИИ #4
Это у меня сгенерировался проект в VS 2005 так. Но вы можете просто убрать эти строчки, написав так:
C++
1
int main()
Это не скажется на конечном результате.
Twitosha
1 / 1 / 0
Регистрация: 02.03.2013
Сообщений: 29
29.05.2013, 04:15  [ТС]     Вычислить среднее геометрическое. ФУНКЦИИ #5
Программа работает, но есть одно НО считает не правильно. Помогите разобраться.

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
#include <ctime>
#include <stdlib.h>
#include <iostream>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
using namespace std;
 
float Proizv( float c, float mas)
{   
    c = c*mas;
    return c;
}
 
float Geometric(float proiz, float i)
{ 
float rez = 0;
rez = pow (proiz,double(1/i));
return rez;
}
int main(int argc, char*  argv[])
{   
    int size = 7;
    float A[size];
    float B[size];
    float c ;
    float rez;
    float proiz;
    srand (time(NULL));
    for (int i = 1; i <= size; i++)
        {   
          A[i] = rand () % 10;
          cout<<setw(3)<< A[i];
        }
    cout<<endl<<endl;
    for (int i = 0; i < size; i++)
        for (c = 1; c < size; c++)
        {   
          proiz = Proizv (c,A[i]);
        }
        
    for (int i = 1; i < size; i++)
    {
        
        B[i] = Geometric (proiz,i);  
        printf ("B[%d]=%lf \n",i,B[i]);
    }
 
system("pause");
}
Kiva
 Аватар для Kiva
5 / 5 / 0
Регистрация: 30.05.2013
Сообщений: 11
01.06.2013, 02:28     Вычислить среднее геометрическое. ФУНКЦИИ #6
Цитата Сообщение от Twitosha Посмотреть сообщение
Программа работает, но есть одно НО считает не правильно. Помогите разобраться.
Мельком просмотрел Ваш код, скорей всего ваша ошибка сдесь:

Цитата Сообщение от Twitosha Посмотреть сообщение
float Geometric(float proiz, float i)
{
float rez = 0;
rez = pow (proiz,double(1/i));
return rez;
}
нужно написать вот так:
C++
1
rez = pow (proiz,double(1.0/i));
и ещё странно как компилятор Вам не ругнулся но size нужно объявить как константу, тоесть вот так:
C++
1
const int size = 7;
Вот ещё можете взглянуть на мой вариант решения задачи:
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
#include <iostream>
#include <conio.h>
#include <ctime>
#include <math.h>
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    const int SIZE = 10;
    double a[SIZE];
    double q = 1;
    int N;
    cout << "Введите количество элементов: ";
    cin >> N;
    srand(time(NULL));
    cout << endl;
 
    //Заполняем массив
    for (int i = 0; i < N; i++)
    {
        a[i] = rand()%100+1;
        cout << a[i] << " ";
    }
 
    //Перемножаем то что под корнем
    for (int i = 0; i < N; i++)
    {
        q *= a[i];
    }
 
    //Выводим результат
    cout << endl << "\nСреднее геометрическое для каждого члена: \n" << endl;
    for (int i = 0; i < N; i++)
    {
        cout << "b[" << i+1 << "] = " << pow(double(q),1.0/(i+1)) << endl;
    }
    getch();
}
Yandex
Объявления
01.06.2013, 02:28     Вычислить среднее геометрическое. ФУНКЦИИ
Ответ Создать тему
Опции темы

Текущее время: 00:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru