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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Flavio
0 / 0 / 0
Регистрация: 11.12.2008
Сообщений: 5
#1

Посчитать сумму ряда - C++

11.12.2008, 23:34. Просмотров 1477. Ответов 8
Метки нет (Все метки)

Привет! возникла сложность с задачами... В одной необходимо посчитать сумму ряда с точность до e равного 10 в степени -12 причем использовать функцию... Есть и ответ 0.6, вот код который писал:
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 <stdio.h>
 
#include <math.h>
 
double Term(double x)
{
    double result=1/x*(2*x+1);
    return result;
}
 
int main(void) {
 long n;
 double dbln;
 double sum=0;
 double term;
 const double eps=pow(10,-12);
   for (n=1; ;n++) 
   {
     dbln=n;                 
     term=Term(dbln);  
     if (fabs(term)>=eps) 
        sum+=term;
     else break; 
   }
   printf("%d\n",sum);   
  return 0;
}
Код не сам с нуля писал, в некоторых примерах из книг нашел некоторые заготовки... может что и очень плохо и ужасно просто С++ как понимаю язык не простой а работы требуют каждую неделю почти ничего не объясняя И еще есть задача: заменить в имеющейся строке принятое обозначение символа с заданным кодом (пример 101) на символ (в данном случае А)... Помогите плиз в С++ почти ничего нормально не знаю
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.12.2008, 01:45     Посчитать сумму ряда #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
#include <stdio.h>
 
#include <math.h>
 
/* считает сумму ряда с точность до e равного 10 в степени -12, использует функцию */
main()
{
    double term(double x);
    const double eps = 1e-12;
    long n;
    double sum = 0.0, t;
    
    for (n = 1; fabs((t = term((double) n))) >= eps; sum += t, n++)
        ;
    printf("%g\n", sum);
    return 0;
} 
 
/* term:  возвращает значение математической функции */
double term(double x)
{
    return 1.0 / (x * (2.0 * x + 1.0));
}
а преподов не ругай им может быть зарплату задерживают
чуть поправил результат как ты и говорил около 0.6
Flavio
0 / 0 / 0
Регистрация: 11.12.2008
Сообщений: 5
15.12.2008, 17:00  [ТС]     Посчитать сумму ряда #3
Я не ругаюсь) Спасибо! По строкам подскажите как делать? просто не охота новую тему создавать... Как я понял среди вводимого текста заменить коды символов на сами символы? ведь вся строка не может существовать только из кодов...
Сама задача: заменить в имеющейся строке принятое обозначение символа с заданным кодом (пример 101) на символ (в данном случае А)
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.12.2008, 21:37     Посчитать сумму ряда #4
непонятно строка
a b c d e f 240 h i j k l
или
abcdef240hijkl
фраза "принятое обозначение" неясно кем принятое
мир принимает одно обозначение а человек может принять любое
Flavio
0 / 0 / 0
Регистрация: 11.12.2008
Сообщений: 5
16.12.2008, 23:00  [ТС]     Посчитать сумму ряда #5
Извините за назойливость, не подскажите каким методом можно реализовать, в интернете в статьях ничего толкового по теме строки не нашел.
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.12.2008, 00:52     Посчитать сумму ряда #6
задание неясно, если просто код символа то это один цикл с перебором элементов и проверкой кода каждого из них, если найден код, заменить его на условный символ
а если не просто код символа а символ, закодированный несколькими символами, не только искать эту последовательность но и разделять строку
это
strstr для поиска
strcpy для отделения первой части
strcat для присоединения символа и второй части (я использовал вместо strcpy и strcat sprintf со строкой форматирования, включающей обе части и символ между ними, вроде нормально (удобно))
и когда надо заменить все коды на один символ, то после каждой замены нужно проходить строку заново через strstr
strstr возвращает NULL когда больше не может найти, иначе возвращает адрес символа где нашла
Flavio
0 / 0 / 0
Регистрация: 11.12.2008
Сообщений: 5
17.12.2008, 01:13  [ТС]     Посчитать сумму ряда #7
Цитата Сообщение от accept Посмотреть сообщение
задание неясно, если просто код символа то это один цикл с перебором элементов и проверкой кода каждого из них, если найден код, заменить его на условный символ
а если не просто код символа а символ, закодированный несколькими символами, не только искать эту последовательность но и разделять строку
это
strstr для поиска
strcpy для отделения первой части
strcat для присоединения символа и второй части (я использовал вместо strcpy и strcat sprintf со строкой форматирования, включающей обе части и символ между ними, вроде нормально (удобно))
и когда надо заменить все коды на один символ, то после каждой замены нужно проходить строку заново через strstr
strstr возвращает NULL когда больше не может найти, иначе возвращает адрес символа где нашла
Такое вот задание... если задать строку как массив символов то есть char он может записать в него цифры? если может то код символа например 240 будет содержаться в 3 элементах массива. И опять же 2 варианта: a b c d e f 240 h i j k l или abcdef240hijkl. В первом случае насколько понимаю запись в массив должна будет прекратиться так как встретился пробел.
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.12.2008, 09:57     Посчитать сумму ряда #8
можно двумя способами записать в один и тот же символьный массив строку содержащую код, который потом обрабатывать

в первом случае (на пробелы не обращай внимание) записаны символы и 240 - это код символа '\360' или '\xF0' одно и то же просто 240 это прямо число записанное в один элемент символьного массива
C++
1
2
unsigned char line[1000];
line[6] = 240;
а во втором случае
C++
1
2
3
line[6] = '2';
line[7] = '4';
line[8] = '0';
где 2 4 и 0 имеют свои числовые коды 50, 52, 48
их можно записать и так
C++
1
2
3
line[6] = 50;
line[7] = 52;
line[8] = 48;
потому непонятно в задании как сколько элементов занимает код один или три (если код трёхзначный)
во втором случае код для символа можно хоть 6значный придумать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2008, 16:16     Посчитать сумму ряда
Еще ссылки по теме:

C++ Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины
Посчитать сумму ряда 1-1/3+1/5-1/7+1/9….N C++
C++ Посчитать сумму ряда с заданной точностью
Посчитать сумму ряда C++
Посчитать сумму ряда C++

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

Или воспользуйтесь поиском по форуму:
Flavio
0 / 0 / 0
Регистрация: 11.12.2008
Сообщений: 5
17.12.2008, 16:16  [ТС]     Посчитать сумму ряда #9
Цитата Сообщение от accept Посмотреть сообщение
можно двумя способами записать в один и тот же символьный массив строку содержащую код, который потом обрабатывать

в первом случае (на пробелы не обращай внимание) записаны символы и 240 - это код символа '\360' или '\xF0' одно и то же просто 240 это прямо число записанное в один элемент символьного массива
unsigned char line[1000];
line[6] = 240;

а во втором случае
line[6] = '2';
line[7] = '4';
line[8] = '0';

где 2 4 и 0 имеют свои числовые коды 50, 52, 48
их можно записать и так
line[6] = 50;
line[7] = 52;
line[8] = 48;

потому непонятно в задании как сколько элементов занимает код один или три (если код трёхзначный)
во втором случае код для символа можно хоть 6значный придумать
Немного со вторым вариантом не допонял, будем вводить с клавиатуры например строку со встречающимися кодами символов напрмер abcdef65hijk120l и судя по задаче необходимо заменить коды в строке на символы и вывести уже строку только с символами. Но строка будет как массив записывать и получится второй вариант что цифры будут содержаться в нескольких ячейках. Каждая цифра имеет свой код но думаю зачем еще от цифр писать код... Может я чего неправильно понял или написал извините тогда...
Yandex
Объявления
17.12.2008, 16:16     Посчитать сумму ряда
Ответ Создать тему
Опции темы

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