Donfish.org: Рыбалка в Донбассе

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Donfish.org: Рыбалка в Донбассе » Беседка » нужна помощь по С++


нужна помощь по С++

Сообщений 31 страница 60 из 62

31

это то что я одновременно с Окушком набросал, с функцией, но это C++ относительный конечно  :D

+2

32

:cool:

0

33

Vitalyt спасибо! и за пояснения  в программе тоже спасибо

0

34

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

using namespace std;

int main()
{
    double i,a,n,s=0;
    cout<<"  n="; cin>>n;
    cout<<"  a="; cin>>a;
    cout.precision(5);
    for(i=0;i<=2*n;i++) s+=(1/pow(a,i));
    cout<<"\n\n  S="<<s<<endl;
    system("pause");
    return 0;
}

Задача 2 опять же нуждаеться в проверке из за отсутствия визуал студио.

+1

35

Окушок, спасибо.Если есть ошибки пусть сам проверяет и находит.
Вы и такс Vitalyt  сильно  помогли.

Отредактировано канопус (2011-03-27 21:54:37)

0

36

на плюсах первую задачу я бы делал примерно так

#include <iostream>
#include <vector>
#include <algorithm>

typedef std::vector<int> IntArray;

// функция возвращает максимальное число в последовательности
int maxValueInSequence(const IntArray &intArray)
{
   return *(std::max_element(intArray.begin(), intArray.end())) ;
}

int main()
{
   std::cout << "Введите последовательность чисел, закончите ввод нулем." << std::endl;
   IntArray array;
   int value = 0, i = 0;
   do
   {
      std::cout << "Введите элемент номер " << ++i << " или 0 для окончания ввода:";
      std::cin >> value;
      if (value) array.push_back(value);
   } while (value != 0);

   std::cout << "Максимальное значение последовательности: " << maxValueInSequence(array);

   return 0;
}

но не уверен, что а) он это поймет, б) сможет защитить, в) это от них хотели преподаватели.
:rofl:

Отредактировано Vitalyt (2011-03-27 23:00:50)

0

37

Окушок написал(а):

Задача 2 опять же нуждаеться в проверке из за отсутствия визуал студио.

компиль онлайн в Камю, будешь удивлен :)

0

38

Vitalyt написал(а):

но не уверен, что а) он это поймет, б) сможет защитить, в) это от них хотели преподаватели

Ну это пусть уже сам  разбирается и доказывает.   Он парень не глупый, но ленивый.

0

39

Окушок написал(а):

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    double i,a,n,s=0;
    cout<<"  n="; cin>>n;
    cout<<"  a="; cin>>a;
    cout.precision(5);
    for(i=0;i<=2*n;i++) s+=(1/pow(a,i));
    cout<<"\n\n  S="<<s<<endl;
    system("pause");
    return 0;
}

шото в этом я совсем не уверен.

0

40

Vitalyt написал(а):

шото в этом я совсем не уверен.

у самого некоторые сомнения есть, но вродебы логически все правильно. Должно работать)

0

41

канопус написал(а):

Он парень не глупый, но ленивый.

Фраза зачморившаая сотни тысяч человек в постсовке.
"Я умный, но ленивый" - формула неудачника.

0

42

не, работать не будет, причем сразу, при i=0 у тебя не получится 1/a, а получится 1/a^0 = 1/1 = 1

0

43

Во второй задаче,явно не сумму ряда надо, а в решении (for(i=0;i<=2*n;i++) s+=(1/pow(a,i));)   степень i - должна быть только четной i++ не катит надо желательно явно i=i+2(для DOS компиляторов), и n - номер члена ряда, число членов в 2 раза больше:
ввели n, и проревели на четность, если  четно, то к=n иначе k=n-1...

0

44

Уточните условие: Определить являет??????????

0

45

по-моему так правильнее
#include <iostream>
#include <math.h>

int main()
{
   int n;
   std::cout << "Введите n:";
   std::cin >> n;
   double a;
   std::cout << "Введите a:";
   std::cin >> a;

   double sum = 1/a;
   for (int i=2; i<=n; i++)
   {
      sum += 1/pow(a, 2*(i-1));
   }

   std::cout << "Сумма: " << sum;

   return 0;
}

Отредактировано Vitalyt (2011-03-27 22:52:07)

0

46

if (a!=0) {double sum = 1/a; ..... }

0

47

а теперь немного лирики  :D
если во втором семестре возникают проблемы с подобными задачами, то самое время задуматься о 2х вещах
1) или банально не интересно и не хочется этим заниматься
2) или хочется, но не получается

но делать что-то надо срочно, ИМХО. если с профильными предметами так тяжело, то смысл учебы в этом ВУЗе минимален.
надо думать о репетиторе что ли... задания элементарные, если честно.

+1

48

krestanin написал(а):

if (a!=0) {double sum = 1/a; ..... }

ну да на 0 делить нельзя, но и смысла считать такой ряд мало  :D
там на каждом шаге будет деление на 0.

еще n должен быть больше 0  :D

но в C++ с 0м нельзя double сравнивать....

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

int main()
{
   int n = 0;
   do
   {
      std::cout << "Введите n, n > 0:";
      std::cin >> n;
   } while (n < 1);

   double a = 0.0;
   const double EPS = 0.000001;
   do
   {
      std::cout << "Введите a, a<>0:";
      std::cin >> a;
   } while (fabs(0-a) < EPS);

   double sum = 1/a;
   for (int i=2; i<=n; i++)
   {
      sum += 1/pow(a, 2*(i-1));
   }

   std::cout << "Сумма: " << sum;

   return 0;
}

Отредактировано Vitalyt (2011-03-27 22:51:46)

0

49

Vitalyt написал(а):

надо думать о репетиторе что ли... задания элементарные, если честно.

Да уже сами с женой подумывали. Специальность сам сын выбирал. Но, я смотрю тяги  у него к программированию нет.

0

50

krestanin написал(а):

Уточните условие: Определить являет??????????

Где уточнение? :'(
Решают явно не ту задачу, наверняка 1/а - связано с eps, или ещё какая хрень....   :glasses:

0

51

канопус написал(а):

Но, я смотрю тяги  у него к программированию нет.

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

0

52

krestanin написал(а):

Решают явно не ту задачу, наверняка 1/а - связано с eps, или ещё какая хрень....

та ну, это задача на циклы и аналитику, просто надо понять по какой закономерности строится этот цикл.

0

53

krestanin написал(а):

Где уточнение?

по заданным значениям а и n , найти сумму последовательности

0

54

да нет там подводных камней :)

0

55

Бари этот вариант и не парься

#include <iostream>
#include <math.h>
int main()
{
   int n = 0;
   do
   {
      std::cout << "Введите n, n > 0:";
      std::cin >> n;
   } while (n < 1);
   double a = 0.0;
   const double EPS = 0.000001;
   do
   {
      std::cout << "Введите a, a<>0:";
      std::cin >> a;
   } while (fabs(0-a) < EPS);
   double sum = 1/a;
   for (int i=2; i<=n; i++)
   {
      sum += 1/pow(a, 2*(i-1));
   }
   std::cout << "Сумма: " << sum;
   return 0;
}

0

56

Vitalyt написал(а):

ну да на 0 делить нельзя, но и смысла считать такой ряд мало  
там на каждом шаге будет деление на 0.
еще n должен быть больше 0

проверка для n- не смертельна
программа должна быть результативной в любом случае...
Виталий, Ум_ница... :flag:

0

57

да ладно, просто делать нечего, а вдруг поможет кому-то. это все равно что математику теорему Пифагора  доказывать ради прикола...

0

58

Vitalyt написал(а):

математику теорему Пифагора

Сколькими способами доказываешь? известно, независимых помоем 89  :disappointed:

0

59

я? неее, я не доказываю, только программировать умею.  :jumping:

0

60

Vitalyt написал(а):

мое мнение на эту специальность нельзя идти не подготовленным после школы, программирование должно увлечь гораздо раньше, тогда будет успех,

Не только программирования ,но и другие науки.
Я в 7 классе практически знал программу по астрономии за 10 класс.  И поступал в Харьков на астрономический факультет.
!
Я понимаю ,что мы опять обманываем себя, поймет сын или не поймет эту программу, лишь  бы сдал лабы.
Мне даже как-то стыдно стало.  Но я за него возьмусь.......
Еще раз всем большое спасибо

0


Вы здесь » Donfish.org: Рыбалка в Донбассе » Беседка » нужна помощь по С++