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

Необходимо преобразовать код в более простой - без функций, процедур и конструктора. - C++

Восстановить пароль Регистрация
 
MaxBudkov
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 23
27.01.2016, 21:17     Необходимо преобразовать код в более простой - без функций, процедур и конструктора. #1
Всем доброго вечера. Долгое время работал над программой, в плане её понимания. Попытался переработать в более простой вид - без функций, процедур и конструктора. Сократил как мог, осталось немного. Помогите пожалуйста убрать и эти функции, оставив лишь структуру и main. Пожалуйста.

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
#include <iostream>
#include <fstream>
using namespace std;
 
struct sLink
{
    double i;
    sLink *next;
    sLink(double _i)
    {
        i = _i;
        next = NULL;
    }
    void AddToEnd(double _i)
    {
        if(next == NULL) 
            next = new sLink(_i);
        else
            next->AddToEnd(_i);
    }
    void Out()
    {
        cout << " " << i;
        if(next != NULL)
            next->Out();
        else
            cout << endl;
    }
};
 
int main()
{
    ifstream file1("3.txt");
    sLink *A = new sLink(0);
    while(!file1.eof())
    {
        double buf;
        file1 >> buf;
        A->AddToEnd(buf);
    }
    cout << "Elements in file:";
    A->next->Out();
    file1.close();
    sLink *tmp = A->next;
    while(tmp != NULL)
    {
        if( (tmp->i) < 0 && tmp->next != NULL )
            tmp->i = tmp->i * (-1);
        else
            tmp = tmp->next;
    }
 
    cout << "\nElements in structure A:";
    A->next->Out();
    file1.close();
    system("pause");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2016, 21:17     Необходимо преобразовать код в более простой - без функций, процедур и конструктора.
Посмотрите здесь:

Использование процедур и функций C++
C++ Использoвание процедур и функций
C++ процедур и функций
C++ Какие нюансы в вызове виртуальных функций из конструктора и из деструктора?
преобразовать символьное представление целого числа в целое число без исользования стандартных библ функций C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Valera_
 Аватар для _Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
27.01.2016, 21:26     Необходимо преобразовать код в более простой - без функций, процедур и конструктора. #2
Цитата Сообщение от MaxBudkov Посмотреть сообщение
Попытался переработать в более простой вид - без функций, процедур и конструктора.
Эволюция создала из обезьяны человека, а ты хочешь обратно все вернут!*?

Придется тебя расстроить, но список не получится сделать в одной функции.
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,800
Завершенные тесты: 1
27.01.2016, 22:08     Необходимо преобразовать код в более простой - без функций, процедур и конструктора. #3
Цитата Сообщение от MaxBudkov Посмотреть сообщение
Помогите пожалуйста убрать и эти функции, оставив лишь структуру и main. Пожалуйста.
http://rextester.com/CIXY36480
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
#include <iostream>
#include <sstream>
using namespace std;
 
struct sLink
{
    double i;
    sLink *next;
};
 
int main()
{
    sLink *A = new sLink; A->i = 0;
    sLink *B = A;
    
    const auto content = "-1.5 -2.4 -5.4";
    stringstream file1(content);
    
    cout <<"loading data from file: ";
    while( true )
    {
        double buf;
        file1 >> buf;
        cout << buf << ", ";
        
        A->i = buf;
        
        if(!file1.eof() )
            A->next = new sLink,
            A = A->next;
        else
            break;
    }
    cout << '\n';
    
    
    cout << "Elements in file:";
    
    bool exit = false;
    
view:
    sLink* tmp = B;
    while(tmp)
        cout << " " << tmp->i,
        tmp = tmp->next;
    cout << endl;
    
    if(exit) return 0;
    
    tmp = B;
    while(tmp)
        if( tmp->i < 0 )
            tmp->i = tmp->i * (-1);
        else
            tmp = tmp->next;
    
    exit = true;
    cout << "\nElements in structure A:";
    goto view;
}
nord_v
227 / 176 / 69
Регистрация: 22.08.2013
Сообщений: 723
28.01.2016, 02:04     Необходимо преобразовать код в более простой - без функций, процедур и конструктора. #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <fstream>
using namespace std;
 
struct sLink
{
    double i;
    sLink *next;
};
 
int main()
{
    ifstream file1("3.txt");
    sLink *A = new sLink;
    A ->i = 0;
    A ->next = NULL;
    double buf;
    while(file1 >> buf)
    {
       sLink* end = A;
        while (end ->next != NULL)
            end = end ->next;
        end ->next = new sLink;
        end ->next ->i = buf;
        end ->next ->next = NULL;
    }
    file1.close();
 
    cout << "Elements in file:";
    sLink* tmp = A ->next;
    while (tmp != NULL)
    {
        cout << " " << tmp ->i;
        tmp = tmp ->next;
    }
    cout << endl;
    
    tmp = A->next;
    while(tmp != NULL)
    {
        if( (tmp->i) < 0 && tmp->next != NULL )
            tmp->i = tmp->i * (-1);
        else
            tmp = tmp->next;
    }
 
    cout << "\nElements in structure A:";
    tmp = A ->next;
    while (tmp != NULL)
    {
        cout << " " << tmp ->i;
        tmp = tmp ->next;
    }
    cout << endl;
 
    while (A != NULL)
    {
        tmp = A ->next;
        delete A;
        A = tmp;
    }
    
    system("pause");
}
Добавлено через 3 часа 41 минуту
MaxBudkov, у тебя вот это выражение, наверное, неправильно работает: данные, в последнем узле списка, не будут обработаны из-за && в if()(т.е., если там i < 0, то так и останется):
Цитата Сообщение от nord_v Посмотреть сообщение
C++
1
2
3
4
5
6
7
    while(tmp != NULL)
    {
        if( (tmp->i) < 0 && tmp->next != NULL )
            tmp->i = tmp->i * (-1);
        else
            tmp = tmp->next;
    }
Если так не должно быть, то убери второе условие в if().
Yandex
Объявления
28.01.2016, 02:04     Необходимо преобразовать код в более простой - без функций, процедур и конструктора.
Ответ Создать тему
Опции темы

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