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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сжать массив, удаляя из него элементы равные числу, введенному с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1763335.html
Помогите пж если не сложно! Написать и протестировать функцию compress(), которая сжимает массив, удаляя из него элементы равные числу, введенному с клавиатуры. #include <iostream> using namespace std; void compress(int*, int, int); int main() { setlocale(0, "");
C++ Перемещающий конструктор Можете привести пример реализации перемещающего конструктора? http://www.cyberforum.ru/cpp-beginners/thread1763333.html
Генератор случайных чисел повторяется C++
Вот начало кода int x, y; char rs='y'; y=rand()%999+1; Это игра "Угадай число". В первый раз генератор всегда создает число "42". Если выиграть, срабатывает эта часть кода { cout << "You win! Restart? (type "y")" << endl; y=rand()%999+1; cin >> rs; }
C++ Разница в С# и С++. Объясните
Наверное, глупый вопрос, но я всё же хочу разобраться, в чем отличия этих двух языков и особенно, как отличаются их области применения. Где используют С++, а где С#? В данный момент в институте изучаем С++. Но, несколько изучив предложения на рынке, я заметил, что С# востребован больше. С чем это связано? Или я неправильно изучил?) И думаю дальше уже самому разбираться с Python. Стоит ли этим...
C++ Создать иерархию наследования http://www.cyberforum.ru/cpp-beginners/thread1763317.html
Создайте иерархию классов, используя наследование. Прямолинейное движение делится на равномерное и равноускоренное. Равноускоренное в свою очередь может реализовываться свободным падением по вертикали.
C++ Динамические структуры данных. Деревья Используя шаблон с самоадресацией, Написать программу, которая строит дерево, беря ключи из текстового файла. Определить наиболее часто встречающееся слово. подробнее

Показать сообщение отдельно
ivan_mai
0 / 0 / 0
Регистрация: 07.03.2015
Сообщений: 17

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

15.06.2016, 12:38. Просмотров 89. Ответов 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru