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

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

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

Нужны пояснения к коду - C++

15.06.2016, 12:38. Просмотров 97. Ответов 0
Метки нет (Все метки)

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#include <stdio.h>
#include <iostream>
#include <math.h>
 
using namespace std;
 
struct simple
{
    unsigned int n;
    int a;
    simple *nextsimple;
};
 
void add(simple *a, simple *b, simple *sum)
{
    simple *tempa, *tempb, *tempsum;
    tempa = a;
    tempb = b;
    tempsum = sum;
    do 
    {
        int slag=0;
        slag+=tempa->a;
        tempb = b;
        do 
        {
            if (tempa->n==tempb->n)
                slag+=tempb->a;
            tempb=tempb->nextsimple;
        } while (tempb!=NULL);
        //tempa=tempa->nextsimple;
        if (slag!=0) {
        if (tempsum->nextsimple==NULL)
        {
            tempsum->nextsimple=new simple;
            tempsum = tempsum->nextsimple;
        }
        
        tempsum->a=slag;
        tempsum->n=tempa->n;
        tempsum->nextsimple=NULL;
        }
        tempa=tempa->nextsimple;
    } while (tempa!=NULL);
    tempa = a;
    tempb = b;
    do {
        bool finded = false;
        tempa = a;
        do {
            if (tempb->n==tempa->n) finded = true;
            tempa=tempa->nextsimple;
        } while(tempa!=NULL);
        if (!finded)
        {
            tempsum->nextsimple = new simple;
            tempsum=tempsum->nextsimple;
            tempsum->a=tempb->a;
            tempsum->n=tempb->n;
            tempsum->nextsimple=NULL;
        }
        tempb=tempb->nextsimple;
    } while(tempb!=NULL);
}
 
bool equals(simple *a, simple *b) {
    bool yep = true;
    int i=0,j=0;
    simple *tempa, *tempb;
    tempa = a;
    tempb = b;
    do {
        ++i;
        tempa=tempa->nextsimple;
    } while(tempa!=NULL);
    do {
        ++j;
        tempb=tempb->nextsimple;
    } while(tempb!=NULL);
    if(i!=j) yep = false;
    tempa = a;
    do {
    tempb = b;
    bool finded = false;
    do {
        if(tempb->n==tempa->n) {
            finded = true;
            if(tempa->a!=tempb->a) yep=false;
        }
        tempb=tempb->nextsimple;
    } while(tempb!=NULL);
    if(!finded) yep=false;
    tempa=tempa->nextsimple;
    } while(tempa!=NULL);
    
    return yep;
}
 
void putsimple(simple *in)
{
    int count;
 
    simple *temp=in;   
    cout<<"size - ";
    cin>>count;
    for (int i = 0;i<count;i++)
    {
        if (i!=0) 
        {
            temp->nextsimple = new simple;
            temp=temp->nextsimple;
        }
        cout<<endl<<"Put a n - ";
        cin>>temp->a>>temp->n;
        temp->nextsimple=NULL;
        
    }
    
    
    
}
 
int meaning(simple *a, int x) {
    simple *tempa;
    tempa = a;
    int answer=0;
    do {
        answer+=pow(x,tempa->n)*tempa->a;
        tempa=tempa->nextsimple;
    } while(tempa!=NULL);
    return answer;
}
 
void printsimple(simple *in)
{
    simple *temp=in;
    cout<<endl;
    do
    {
        if (temp->a>0) cout<<"+"<<temp->a<<"x^"<<temp->n;
        else
        cout<<temp->a<<"x^"<<temp->n;
        temp=temp->nextsimple;
    } while (temp != NULL);
    cout<<endl;
}
 
int main(int argc, char **argv)
{
    simple *P = new simple;
    simple *Q = new simple;
    simple *sum = new simple;
    int x;
    cout<<"Enter P:"<<endl;
    putsimple(P);
    cout<<"Enter Q:"<<endl;
    putsimple(Q);
    cout<<"Enter x - ";
    cin>>x;
    printsimple(P);
    printsimple(Q);
    if (equals(P,Q)) cout<<"P equals Q"<<endl; else cout<<"P NOT equals Q"<<endl;
    cout<<"P+Q:"<<endl;
    add(P,Q,sum);
    printsimple(sum);
    cout<<"P in x = "<<meaning(P,x)<<endl;
    cout<<"Q in x = "<<meaning(Q,x)<<endl;
    cout<<"Done!!!";
    scanf("%d");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2016, 12:38     Нужны пояснения к коду
Посмотрите здесь:

Необходимы пояснения по коду - C++
Здравствуйте знатоки C++. Прошу не бранить меня сильно за мои вопросы. Только начал изучать C++. Изучаю очереди. Нашел тут хороший топик -...

Требуются пояснения по коду - C++
Приветствую. Штурмую тут методичку, и некоторые моменты не ясны: class person { int age; ... public: … void...

Нужны пояснения - C++
Читаю &quot;С++ руководство для начинающих&quot; Герберта Шилдта. Дочитал до &quot;передача аргументов командной строки функции main()&quot;. То ли я глупый,...

Нужны некоторые пояснения - C++
При выполнении программы есть область 20 на 20. 1) Почему при движении вправо или влево, после того, как заканчивается строчка, курсор...

Нужны пояснения по вложенным классам - C++
задался вот таким вопросом, почему не получается объявить вложенный класс следующим образом? #include &lt;iostream&gt; using namespace std; ...

Conversion by constructor , нужны пояснения - C++
Здравствуйте. Смотрю я, что пишут об этом Conversion by constructor, вижу одно: Вот, думаю, сейчас как заставлю компилятор...

Пишем рогалик: пояснения по коду и его критика - C++
Здравствуйте! Сегодня сел писать рогалик, в процесе возникло несколько вопросов (в виде коментариев в коде): main.cpp ...

Синглтон Мейерса, нужны некоторые пояснения - C++
class Singleton{ public: static Singleton&amp; init() { static Singleton Object; return Object; } ...

Структура "Student", нужны пояснения - C++
Доброе время суток форум. Нужна помощь в объяснении программы. Хочу в ней разобраться. Вроде в ней все выглядит знакомо, но понять ничего...

Нужны коментарии ко коду. - C++
Все доброго времени! Такой вопрос, есть код, работает исправно, что делает тоже ясно. Часть я уже прокоментил, но с большей частью...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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