Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
#1

Описать процедуру Mean(X, Y, AMean), вычисляющую среднее арифметическое двух положительных чисел - C++

12.05.2012, 19:46. Просмотров 2203. Ответов 9
Метки нет (Все метки)

Описать процедуру Mean(X, Y, AMean), вычисляющую среднее арифметическое AMean = (X + Y)/2 двух положительных чисел X и Y (X и Y — входные, AMean и GMean — выходные параметры вещественного типа). С помощью этой процедуры найти среднее арифметическое и среднее геометрическое для пар (A, B), (A, C), (A, D), если даны A, B, C, D.
Код на Паскале:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure Mean(x,y:real; var AMean,GMean:real);
begin
AMean:=(x+y)/2;
GMean:=sqrt(x * y);
end; 
var a,b,c,d,am,gm:real;
begin
write('Введите A: '); readln(a);
write('Введите B: '); readln(b);
write('Введите C: '); readln(c);
write('Введите D: '); readln(d);
mean(a,b,am,gm);
writeln('Для пары (A,B) cp.apифм. =',am:0:6,' cp.гeoм. = ',gm:0:6);
mean(a,c,am,gm);
writeln('Для пары (A,C) cp.apифм. =',am:0:6,' cp.гeoм. = ',gm:0:6);
mean(a,d,am,gm);
writeln('Для пары (A,D) cp.apифм. =',am:0:6,' cp.гeoм. = ',gm:0:6);
readln;
end.
Код на С++
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
double Mean (int x, int y, double AMean, double GMean)
{
    AMean=(x+y)/2;
    GMean=(x*y);
    return AMean, GMean;
}
int main()
{ 
    setlocale(LC_ALL, "");
    int a, b, c, d, AM, GM;
    cout<<"Введите A - "; cin>>a;
    cout<<"Введите B - "; cin>>b;
    cout<<"Введите C - "; cin>>c;
    cout<<"Введите D - "; cin>>d;
    Mean(a, b, AM, GM);
    cout<<"Для пары AB, ср. арифм. = "<<AM<<"; Ср. геом. = "<<GM;
    Mean(a,c,AM,GM);
    cout<<"Для пары AC, ср. арифм. = "<<AM<<"; Ср. геом. = "<<GM;
    Mean(a,d,AM,GM);
    cout<<"Для пары AD, ср. арифм. = "<<AM<<"; Ср. геом. = "<<GM;
    return 0;
}
Выдаёт ошибки:
warning C4700: использована неинициализированная локальная переменная "GM"
warning C4700: использована неинициализированная локальная переменная "AM"
В С++ нет процедур, и поэтому ошибка(
Помогите...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2012, 19:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать процедуру Mean(X, Y, AMean), вычисляющую среднее арифметическое двух положительных чисел (C++):

Напишите программу, вычисляющую среднее арифметическое двух чисел - C++
Всем привет! Народ помогите с задачкой, нужно сделать в Microsoft Visual Studio. Задача: Напишите программу, вычисляющую среднее...

Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел - C++
Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры. ...

Найти среднее арифметическое квадратов и среднее арифметическое абсолютных значений двух вещественных чисел - C++
Всем здрасте помогите плиз. Дается два вещественных числа. Найти среднее арифметическое их квадратов и среднее арифметическое их абсолютных...

Вычислите среднее арифметическое положительных и среднее арифметическое отрицательных чисел - C++
Дано n вещественных чисел,которые вводятся с клавиатуры. Вычислите среднее арифметическое положительных и среднее арифметическое...

Выясните, что больше: среднее арифметическое или среднее геометрическое трех положительных чисел - C++
Выясните, что больше: среднее арифметическое или среднее геометрическое трех положительных чисел. Разработайте перегруженные функции...

Вершины дерева вещественные числа. Описать процедуру, которая вычисляет среднее арифметическое всех вершин - C++
Вершины дерева вещественные числа. Описать процедуру, которая вычисляет среднее арифметическое всех вершин дерева и добавляет в дерево...

9
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
12.05.2012, 19:57 #2
Ну так инициализируй переменные:
C++
1
2
3
4
cout<<"Введите AM - "; 
cin>>AM;
cout<<"Введите GM - "; 
cin>>GM;
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
12.05.2012, 20:14 #3
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
C++
1
2
3
4
5
double Mean (int x, int y, double AMean, double GMean) {
    AMean=(x+y)/2;
    GMean=(x*y);
    return AMean, GMean;
}
Нельзя возвратить из функции сразу 2 значения. + здесь AMean и GMean - локальные копии, т.е. те, что в ф-ии main не изменятся. Передавай выходные параметры по ссылке, возвращать из ф-ии ни к чему. Т.е. как-то так:
C++
1
2
3
4
void Mean(double x, double y, double & AMean, double & GMean) {
    AMean = (x + y) / 2.;
    GMean = std::sqrt(x*y);
}
1
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.05.2012, 01:11  [ТС] #4
Цитата Сообщение от yuron_477 Посмотреть сообщение
Ну так инициализируй переменные:
C++
1
2
3
4
cout<<"Введите AM - "; 
cin>>AM;
cout<<"Введите GM - "; 
cin>>GM;
Мы AM и GM не вводим, посмотри код, который на Паскале, внимательнее! Мы их просто выводим
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.05.2012, 01:18  [ТС] #5
Задание:
Описать процедуру Mean(X, Y, AMean), вычисляющую среднее арифметическое AMean = (X + Y)/2 двух положительных чисел X и Y (X и Y — входные, AMean и GMean — выходные параметры вещественного типа). С помощью этой процедуры найти среднее арифметическое и среднее геометрическое для пар (A, B), (A, C), (A, D), если даны A, B, C, D.

Код:
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
void Mean(double x, double y, double AMean, double GMean) 
{
    AMean = (x + y) / 2.;
    GMean = sqrt(x*y);
}
int main()
{ 
    setlocale(LC_ALL, "");
    double a, b, c, d, AM, GM;
    cout<<"Введите A - "; cin>>a;
    cout<<"Введите B - "; cin>>b;
    cout<<"Введите C - "; cin>>c;
    cout<<"Введите D - "; cin>>d;
    Mean(a, b, AM, GM);
    cout<<"Для пары AB, ср. арифм. = "<<AM<<"; Ср. геом. = "<<GM<<endl;
    Mean(a, c, AM, GM);
    cout<<"Для пары AC, ср. арифм. = "<<AM<<"; Ср. геом. = "<<GM<<endl;
    Mean(a, d, AM, GM);
    cout<<"Для пары AD, ср. арифм. = "<<AM<<"; Ср. геом. = "<<GM<<endl;
    return 0;
}
Скрин ошибки:
0
Миниатюры
Описать процедуру Mean(X, Y, AMean), вычисляющую среднее арифметическое двух положительных чисел  
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
13.05.2012, 01:23 #6
русский по белому написано "не инициализированные переменные GM AM".
присвойте им нули в начале.

и что бы работало правильно, в функции надо принимать ссылки.
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
void Mean(double x, double y, double &AMean, double &GMean)
2
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
13.05.2012, 01:24 #7
Вообще, вычисления среднего ариф. и геом. логичнее было бы в разные ф-ии разнести - тогда у каждой ф-ии будет одна ответственность + можно будет пользоваться только возвращаемым значением.
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.05.2012, 01:26  [ТС] #8
Цитата Сообщение от antoha398 Посмотреть сообщение
русский по белому написано "не инициализированные переменные GM AM".
присвойте им нули в начале.

и что бы работало правильно, в функции надо принимать ссылки.
Спасибо, заработало)
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.05.2012, 02:28 #9
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
Мы AM и GM не вводим, посмотри код, который на Паскале, внимательнее! Мы их просто выводим
Да нельзя в С++ пользоваться или выводить на экран не инициализированные переменные. Они содержат в себе мусор.
0
HeqpuJIuM
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
13.05.2012, 05:29 #10
всего то стоило внимательно и вдумчиво прочитать текст ошибки...
0
13.05.2012, 05:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2012, 05:29
Привет! Вот еще темы с ответами:

Найти среднее арифметическое и среднее геометрическое модулей двух чисел - C++
Найти средне арифметическое и средне геометрическое их модулей. Средне геометрическое вычисляется по формуле: G= √|A|B|.

Найти среднее арифметическое и среднее геометрическое двух чисел - C++
Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел. ...

Среднее арифметическое и среднее геометрическое двух чисел - C++
Даны 2 числа, найти среднее арифметическое с снеднее геометрическое.

Найти среднее арифметическое положительных чисел - C++
Помогите пожалуйста написать две программы! 2. С клавиатуры заданы три числа. Найти среднее арифметическое положительных чисел. Заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.