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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.62
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
#1

структура,описание полинома - C++

08.12.2009, 20:31. Просмотров 6113. Ответов 41
Метки нет (Все метки)

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

Где пишется описание для выходного файла .exe (например описание процесса) - C++
Консольный проект, скомпилировали, получили exe. Жмем правой кнопкой на нем\свойства\вкладка подробно, почти все описание exe файла...

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость. - C++
Ребят, помогите пожалуйста, 29 июня экзамен по "Основы программирования",кто сколько сможет сделать задач, тем всей группой поставим "+"...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар» - C++
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и «Продукты» описанной структуры. 3. Создать...

Структура DateTime, битовая структура - C++
Условие: Структура содержит информацию о дате и времени некоторого события: struct datetime { unsigned short Year; // год ...

Структура, доступная из всех файлов проекта ("глобальная" структура) - C++
Есть четыре структуры (body, gun, enemy, st), описанные в main.cpp. К main.cpp подключен хедер save.h, в котором имеется функция void...

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

41
outoftime
║XLR8║
511 / 433 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
14.12.2009, 22:26 #16
если и не ноль, printf("%dX^%d + ",p.c[i],i) иначе printf("%d + ",p.c[i],i)

библиотеку можно удалить, using namespace std; надо удалить, с ним не пашет.. это больше си++ чем си выходит..
1
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
15.12.2009, 10:49 #17
там ещё отрицательные коэффициенты могут быть

Добавлено через 6 минут
делать дофига

Добавлено через 16 минут
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
#include <stdio.h>
#include <stdlib.h>
 
struct polinom {
    double *k;
    size_t n;
};
 
void *CreatePolinom(size_t n);
 
main()
{
    struct polinom *p, *q;
    
    if (!(p = CreatePolinom(4)))
        return 1;
    
    
    
    return 0;
}
 
void *CreatePolinom(size_t n)
{
    struct polinom *p;
    
    if (!(p = malloc(sizeof(struct polinom))))
        return NULL;
    if (!(p->k = calloc(n, sizeof *p->k))) {
        free(p);
        return NULL;
    }    
    p->n = n;
    return (void *) p;
}
это только начало, чтобы можно было потом выполнять дифференцирование (поиск производной)
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
15.12.2009, 16:59  [ТС] #18
спасибо, жаль что мне эта задача попалась =(((
0
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
08.01.2010, 14:22  [ТС] #19
а можете еще что-нибудь подсказать? плз.оч надо =(((.
0
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
10.01.2010, 18:01  [ТС] #20
а что такое (size_t n) ?

Добавлено через 8 минут
а как полностью написать первую половину пунктов ? чтоб оно работало .
Народ, плз , помогите. очень прошу
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
11.01.2010, 00:38 #21
n - это не степень, это количество коэффициентов

Код
x^3 + x^2 + x = 0 /* чуть поменял */
n = 4
потому что свободный член, там его хоть и не видно, но он есть и равен нулю

создал полином, дальше вводишь его коэффициенты, в цикле используешь n, как границу

Добавлено через 6 часов 23 минуты
ввод полинома
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
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <stdlib.h>
 
struct polinom {
    double *k;
    size_t n;
};
 
struct polinom *CreatePolinom(size_t n);
struct polinom *ReadPolinom(struct polinom *p, size_t n);
 
int main(void) /* C89 ANSI */
{
    struct polinom *p, *q;
    
    if ((q = CreatePolinom(4)) == NULL)
        exit(EXIT_FAILURE);
 
    p = q;
 
    if ((q = ReadPolinom(p, p->n)) == NULL)
        exit(EXIT_FAILURE);
    
    p = q;
    
    exit(EXIT_SUCCESS);
}
 
struct polinom *CreatePolinom(size_t n)
{
    struct polinom *p;
    
    if (!(p = (struct polinom *) malloc(sizeof(struct polinom))))
        return NULL;
    if (!(p->k = (double *) calloc(n, sizeof *p->k))) {
        free(p);
        return NULL;
    }    
    p->n = n;
    return p;
}
 
struct polinom *ReadPolinom(struct polinom *p, size_t n)
{
    size_t i;
    
    for (i = p->n; i > 0; i--) {
        if (i-1 > 0)
            printf("enter x^%d coefficient: ", i-1);
        else
            printf("enter the last coefficient: ");
        fflush(stdout);
        
        if (scanf("%lf", p->k+(n-i)) != 1)
            return NULL;
    }
    return p;
}
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
11.01.2010, 17:20  [ТС] #22
Цитата Сообщение от accept Посмотреть сообщение
size_t n
что это ?


Цитата Сообщение от accept Посмотреть сообщение
int main(void) /* C89 ANSI */
/* C89 ANSI */ А это зачем ?

Цитата Сообщение от accept Посмотреть сообщение
((q = CreatePolinom(4)) == NULL)
\
что значит 4 ?


Цитата Сообщение от accept Посмотреть сообщение
exit(EXIT_FAILURE);
эт типо выйти если не выполняется ?

Цитата Сообщение от accept Посмотреть сообщение
ReadPolinom(p, p->n)
а что эт за комманда ?

Цитата Сообщение от accept Посмотреть сообщение
exit(EXIT_SUCCESS);
эт типо выйти если правильно ?

Цитата Сообщение от accept Посмотреть сообщение
size_t i;
не понял ( стр 47)

Цитата Сообщение от accept Посмотреть сообщение
fflush(stdout);
что это за комманда ? ( стр 54)
0
outoftime
║XLR8║
511 / 433 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
11.01.2010, 18:02 #23
Лестат, извеняй, на си написать немогу..
0
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
11.01.2010, 22:27  [ТС] #24
ну, если можете, напишите на Си++ , а я постараюсь переделать. плз
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
11.01.2010, 23:42 #25
Цитата Сообщение от Лестат
что это ?
Цитата Сообщение от accept
n - это не степень, это количество коэффициентов
Цитата Сообщение от Лестат
/* C89 ANSI */ А это зачем ?
написано в этом стандарте и кроме него ничего не используется (совместимо с C++)

Цитата Сообщение от Лестат
что значит 4 ?
сколько коэффициентов будет в полиноме (по их количеству определяется степень полинома 4-1 = 3, то есть создаётся полином третьей степени, у которого коэффициентов четыре, включая свободный член (это то, что без x))

Цитата Сообщение от Лестат
эт типо выйти если не выполняется ?
да, нормально завершить программу и вернуть статус неуспешного завершения в окружающую среду

Цитата Сообщение от Лестат
а что эт за комманда ?
это функция ввести полином (она самодельная, внизу там написана)
там два аргумента: полином и количество коэффициентов, хотя можно было сделать и один, а количество коэффициентов прямо из него вытаскивать внутри функции, так просто яснее (глянешь на этот вызов - и видишь сколько прочитает)

Цитата Сообщение от Лестат
эт типо выйти если правильно ?
нормально завершить программу и вернуть статус успешного завершения в окружающую среду

Цитата Сообщение от Лестат
не понял ( стр 47)
создать переменную i типа size_t (size_t - наибольший беззнаковый тип, такой тип возвращают функции типа strlen и подобные и принимают функции типа malloc и подобные)
он не может быть отрицательным и на современных компиляторах разрешает четыре гигабайта, то есть ~ четыре миллиарда значений
ты можешь создавать полином с четырьмя миллиардами коэффициентов, ну, и чтобы перебирать их, нужно тоже создать переменную такого же большого типа

Цитата Сообщение от Лестат
что это за комманда ? ( стр 54)
так как там нет перевода строки, то буфер может остаться не выведенным на экран
то есть ты как бы текст вывел, а он не показывается (будет выведен на экран, когда будет записан буфер стандартного потока вывода), поэтому fflush заставляет буфер потока вывода зразу записываться, чтобы он на экране появлялся сразу
иначе может быть так, что у тебя программа работает всё вводишь там, а потом на выходе она выведет эти подсказки, когда они уже не нужны
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
11.01.2010, 23:52  [ТС] #26
Ясно, спасибо. Эт получается - ввод и вывод ?

Добавлено через 3 минуты
при запуске пишет :
Microsoft Visual C++ Library
Debug Error !
runtome error

о_О
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
11.01.2010, 23:58 #27
это ввод, при выводе нужно проверять каждый коэффициент на знак, на ноль ещё (чтобы он нулевые не выводил, а знаки соответствующие расставлял, и первый делал со знаком, если там только минус, да и если между знаками пробелы, то первый писать без пробела)

проверь настройки проекта
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
11.01.2010, 23:59  [ТС] #28
ясно, так и сделаю
0
outoftime
║XLR8║
511 / 433 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
12.01.2010, 00:07 #29
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
51
52
53
54
#include <iostream>
 
#define FOR(i,a,b) for (int i(a),_n(b); i < _n; ++i)
#define ABS(a) ( (a) < 0 ? -(a) : a )
 
using namespace std;
 
const int size = 1000;
 
class polinom
{
    int* c;
public:
    polinom()  {c = new int[size]; FOR(i,0,size) c[i] = 0;}
    ~polinom() {delete c;}
    void push(int* a)
    {
        FOR(i,0,size)
            c[i] = a[i];
    }
    void show()
    {
        for (int i = size-1; i > -1; --i)
            if (c[i]) cout << c[i] << "*X^" << i << " + ";
        cout << "\b\b\b" << endl;
    }
    friend polinom operator + (polinom a, polinom b)
    {
        polinom d;
        FOR(i,0,size)
            d.c[i] = a.c[i] + b.c[i];
        return d;
    }
    friend polinom operator - (polinom a, polinom b)
    {
        polinom d;
        FOR(i,0,size)
            d.c[i] = a.c[i] - b.c[i];
        return d;
    }
    friend polinom operator * (polinom a, polinom b)
    {
        polinom d;
        FOR(i,0,size)
            FOR(j,0,size)
                d.c[i+j] += a.c[i]*b.c[j];
        return d;
    }
};
 
int main()
{
    return 0;
}
пока все, завтра еще подумаю..
1
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
13.01.2010, 16:35  [ТС] #30
Народ, пожалуйста напишите как оно будет ?
никто не может написать полностью ?
я просто не успеваю, а эт не могу сделать ( уже где-то месяц с этой задачей мучаюсь, никак не могу сделать) . ПОЖАЛУЙСТА HELP, мне в пятницу ее сдавать =((((((
АААААА, плз помогите......
0
13.01.2010, 16:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2010, 16:35
Привет! Вот еще темы с ответами:

Сложение полинома - C++
Помогите устранить ошибку в коде #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Polynom { unsigned int...

Умножение полинома - C++
Написал черновой #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;string&gt; #include &lt;stdlib.h&gt; using namespace...

Список полинома - C++
Класс полином и класс список для полинома. В списке в функции SortAdd перед return выдает ошибку. С чем может быть связано? Код: ...

Реализовать вывод полинома - C++
void TMyMathematic::printSet()const { cout &lt;&lt; &quot;\nMy Primer: &quot; &lt;&lt; endl; for (int i = 0; i &lt; size ; i ++ ) { cout &lt;&lt; chislitel &lt;&lt; &quot;/&quot;...


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

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

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