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

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

Войти
Регистрация
Восстановить пароль
 
 
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
#1

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

28.11.2012, 02:43. Просмотров 695. Ответов 19
Метки нет (Все метки)

Нужно с помощью показателей большее, меньше, и среднее арифметическое двух чисел, которые генерируются компьютером. Буду очень благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 02:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно с помощью показателей большее, меньше, и среднее арифметическое двух чисел, которые генерируются компьютером. (C++):

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

Если сумма двух чисел меньше 1, то большее из чисел заменить их произведением - C++
помогите решить в С++. Если сумма двух действительных чисел x и y меньше 1, то большее из чисел x и y заменить их произведением. В...

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

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

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

В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5 - C++
В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5. Сап, форумчане.

19
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
28.11.2012, 05:19 #2
ЧАВО?
... показателей
...это как-то связано со степенями?

Не по теме:

если б у меня чего-то горело, я б уделил несколько больше времени осознанию, что от меня вообще требуется тушить.

0
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
28.11.2012, 21:29  [ТС] #3
Я наверное не так перевел, на украинском "покажчики", (*а) и так далее

Добавлено через 6 минут
Извините, указатели, а не показатели. Указатели
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.11.2012, 21:39 #4
Что с помощью указателей сделать?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
28.11.2012, 21:47 #5
По мне, указатели здесь как телеге пятое колесо. Но раз уж требуют, то...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void find_less_and_medium(const int a, const int b, int* less, float* average){
  *less=(a<b)?a:b;
  *average=(a+b)/2.0;
}
int main(){
 int x, y;
 int least;
 float medium;
 srand(time(NULL));
 printf("2 random numbers are %d and %d\n", x=rand()%100, y=rand()%100);
 find_less_and_medium(x, y, &least, &medium);
 printf("least number is %d, average is %f\n", least, medium);
 getchar();
return 0;
}
1
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
29.11.2012, 00:00  [ТС] #6
Спасибо большое!!! безмерно благодарен!!!

Добавлено через 45 минут
У меня еще есть вопрос: Есть задание реализовать генератор псевдослучайныйх чисел(Vi) на основе рекурентного соотношения Vi=(V1*a+V2*b+C)%m, где а,b,c,m - переменные, которые вводятся с клавиатуры, V1,V2 - задаются случайно.

вот код, но у меня эрорит, без рекурсии все работает, но задание с рекурсией. Кто сможет - укажите на ошибки.

#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
float random (float v1,float v2)
{
int v;
int a=1,b=2,c=3,m=10;
v=(int)(a*v1+b*v2+c)%m;
for (int i=1;i<=100;i++)
{
random(v2,v);
}
return v;
}
int main()
{
int n;
//int a,b,c,m;
//cout<<"Input v1 v2 a b c m"<<endl;
//cin>>v1>>v2>>a>>b>>c>>m;
cout<<"Vesti kolichestvo(<100):";
cin>>n;
random(rand()%100,rand()%100);
system("pause");
}
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.11.2012, 00:55 #7
Цитата Сообщение от ulian Посмотреть сообщение
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
float random (float v1,float v2)
{
int v;
int a=1,b=2,c=3,m=10;
v=(int)(a*v1+b*v2+c)%m;
for (int i=1;i<=100;i++)
{
random(v2,v);
}
return v;
}
int main()
{
int n;
//int a,b,c,m;
//cout<<"Input v1 v2 a b c m"<<endl;
//cin>>v1>>v2>>a>>b>>c>>m;
cout<<"Vesti kolichestvo(<100):";
cin>>n;
random(rand()%100,rand()%100);
system("pause");
}
Эта программа не имеет смысла. Всё что она делает - это вычисляет (a*v1+b*v2+c)%m;
То, что в цикле вызывается функция, никак не влияет на числа v и v2
0
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
29.11.2012, 00:59  [ТС] #8
поместил вычисление v=(int)(a*v1+b*v2+c)%m; в сам цикл for (int i=1;i<=100;i++)
{
v=(int)(a*v1+b*v2+c)%m;
random(v2,v);
}
ошибки те же.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.11.2012, 01:05 #9
1) какие ошибки?
2) результат не изменится.
это вычисляет (a*v1+b*v2+c)%m; и это число не меняется в цикле
0
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
29.11.2012, 01:10  [ТС] #10
а если так?
for (int i=1;i<=100;i++)
{
v=(int)(a*i+b*i+c)%m;
random(v2,v);
}

ошибка - Unhandled exception at 0x00391499 in laba5.exe: 0xC00000FD: Stack overflow. Она вылетает при любом варианте вычислений.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.11.2012, 01:12 #11
я не понимаю, что ты хочешь сделать. Где ты взял эту формулу, поэтому не говорю конкретный ответ.
Я даже не сразу заметил, что у тебя тут тупо бесконечная рекурсия.!!
В каждом вызове random (), функция random () вызывается снова без каких либо условий и так бесконечное число раз, пока не закончится память в стеке.
Сколько раз должна вызываться random()? Покажи, дай мне ссылку, откуда ты взял этот алгоритм.
0
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
29.11.2012, 01:17  [ТС] #12
формула задана условием задачи. а бесконечную рекурсию я хотел остановить вызовом функции random(rand()%100,rand()%100) 100 ограничение.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.11.2012, 01:23 #13
ты просто не понимаешь, что такое рекурсия, поэтому смешиваешь её с итерациями.

Подсказка: у тебя по ходу программы i не превышает единицы, а уж до сотни тем более никогда не дойдёт.
но при этом сама функция всё равно вызывается ДОФИГИЩА раз, пока не заполнит всю память в стеке.
0
ulian
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 53
29.11.2012, 01:30  [ТС] #14
возможно, пробовал без рекурсии - все отлично

#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>

using namespace std;


int main()
{
int v,v1,v2;
int f2,f1,n;int a; int b; int c; int m;


cout<<"Input v1 v2 a b c m"<<endl;
cin>>v1>>v2>>a>>b>>c>>m;
cout<<"Vesti n:";
cin>>n;
f1=v1;
f2=v2;
for (int i=1;i<=n;i++)
{
v=(a*f1+b*f2+c)%m;
f1=f2;
f2=v;
cout<<" "<<v<<endl;
}


system("pause");
}

а как тогда сюда рекурсию втулить я не пойму
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.11.2012, 01:44 #15
Я заметил, некоторым людям очень сложно объяснить рекурсию. Я читал книги и скажу, что это даже многие авторы литературы замечают насчёт своих учеников.

Предлагаю такую аналогию того, что за ошибка происходит.
Представь, что твоя функция это веб-страница в браузере. Ты хочешь её прочитать полностью.
Ты открываешь её и видишь на ней колонку из 100 текстовых ссылок.
Ты щёлкаешь первую ссылку и в новом окне поверх старого открывается новая страница по тому же самому адресу
(все ссылки ведут сами на себя, на этот сайт, только открывается он в новом окне)
Итак, ты смотришь в новое окно, видишь колонку из 100 ссылок, щёлкаешь первую и...
открывается новое окно... и.т.д.
Видишь! В результате ты так и не прощёлкаешь не то что ссылку на сотой строчке, но даже до второй не дойдёшь!
Ты будешь открывать новые окна, бесконечно
Не совсем бесконечно, а пока это не вызовет какую-то неполадку в браузере или в системе, например закончится память.
По аналогии с этим у тебя и вываливается ошибка stack overflow!!!

Добавлено через 7 минут
Цитата Сообщение от ulian Посмотреть сообщение
а как тогда сюда рекурсию втулить я не пойму
а это , счас сделаю, но ты понял как работала твоя неверная рекурсия?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2012, 01:44
Привет! Вот еще темы с ответами:

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

Найти среднее арифметическое двух чисел - C++
Решить используя классы. Создать объект класса и инициализировать его значения.дaны двa числa a и b. Найти их среднее арифметическое...

Нужно найти сколько всего чисел и среднее арифметическое чисел максимального и минимального - C++
Помогите найти мне сколько всего чисел и среднее арифметическое чисел максимального и минимального. int main() {...

среднее арифметическое кубов двух данных чисел - C++
среднее арифметическое кубов двух данных чисел; на с++ Добавлено через 33 секунды Помогите пожалуйста!


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
29.11.2012, 01:44
Ответ Создать тему
Опции темы

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