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

Объясните мне, что же такого плохого в goto? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу замены первого слова из введенной строки на последовательность символов «*» http://www.cyberforum.ru/cpp-beginners/thread1112086.html
Написать программу замены первого слова из введенной строки на последовательность символов «*» код turbo c
C++ Даны размеры прямоугольного отверстия x, y, и размеры кирпича a, b и с Даны размеры прямоугольного отверстия x, y, и размеры кирпича a, b и с. Сколькими способами можно протолкнуть кирпич в отверстие? Кирпич проталкивается так, что его грани параллельны сторонам отверстия. http://www.cyberforum.ru/cpp-beginners/thread1112069.html
Написать программу для определения по номеру мобильного телефона оператора/регион C++
Здравствуйте. В интернете достаточно много мнений по этому поводу, настолько много что определиться сложнее? чем если-бы информации не было совсем. Задача: Буду писать программу для определения по номеру мобильного телефона оператора/регион. Подскажите как лучше обрабатывать данные.В интернете мнений много, кто-то говорит что и построчное чтение файла сойдет, где-то говорят что лучше все...
Заполнение матрицы с левого нижнего угла по диагонали (исправить программу) C++
Здравствуйте. Есть код программы, которая заполняет матрицу от левого верхнего угла по диагонали, а нужно, что бы заполняла с нижнего. #include <iostream> #include <conio.h> using namespace std; int main() { const int N = 5; int mas;
C++ Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р http://www.cyberforum.ru/cpp-beginners/thread1112026.html
Кратко опишу требуемую задачу: Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р. При этом Р = a*x^n + a*x^(n-1) + ... + a0. Суть проблемы: как сделать чтобы считало полином до определенного (введенного с клавы) степени, а не только до 2? #include <stdio.h> #include <malloc.h> int* PolyMult(int *a, int *b, int na, int nb) { int nn,i,j,k,c; ...
C++ решение уравнения методом хорд Написал код, все работает, но что-то у меня сомнения по поводу правильности работы программы. Может кто подскажет, если ошибка или все верно. #include <iostream> #include <cmath> double func(double x) { return x*x*x+20*x+8*(log(2+10*sqrt(3))); } double find(double infinum, double supremum, double epsilon) подробнее

Показать сообщение отдельно
b_d
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 105
05.03.2014, 19:13     Объясните мне, что же такого плохого в goto?
Виталян, открой спойлер!

код
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
#include <iostream>
#include <ostream>
 
using namespace std;
 
int matrix[9999][9999], i, j, a, b, dlin, vis, xod, vibor, n, n2,n3,tm;
 
int main()
 
{
    setlocale(0, "");
 
   l3:
    cout << "1 - двигать кубики;" << endl << "2 - редактор;" << endl << "3 - тест;" << endl;
    cin >> vibor;
 
    if (vibor == 3)
    {
        tm = 1;
        dlin = 5;
        vis = 5;
        a = 2;
        b = 2;
        n2 = 1;
        goto L4;
    }
 
    if ((vibor != 1) & (vibor != 2) & (vibor != 3)){
        cout << "!!! ТАКОГО ПУНКТА НЕТ !!!" << endl << endl;
        goto l3;
    }
 
    if (vibor == 1)
    {
        cout << "пока не готово;" << endl << endl;
        goto l3;
    }
 
    for (int q = 0; q<150; q++) cout << endl;
 
    if (vibor == 2)
    {
        cout << "установите размер поля на своё усмотрение," << endl << "однако длина не должна превышать 79" << endl << "(по краёней мере для windows 7)" << endl<< endl << "(если вы псих или просто супермэн, то вот вам на заметку:" << endl << "максимальный размер поля 9999x9999)"<< endl<< endl;
    l1:
        cout << "длина поля = ";
        cin >> dlin;
 
        if (dlin<1)
        {
            cout << endl << "!!! ДЛИНА НЕ МОЖЕТ БЫТЬ МЕНЬШЕ ЕДИНИЦЫ !!!" << endl << endl;
            goto l1;
        }
 
    l2:
        cout << "высота поля = ";
        cin >> vis;
 
        if (vis<1)
        {
            cout << endl << "!!! ВЫСОТА НЕ МОЖЕТ БЫТЬ МЕНЬШЕ ЕДИНИЦЫ !!!" << endl << endl;
            goto l2;
        }
 
        for (int q = 0; q<150; q++) cout << endl;
 
    L5:
        cout << "0 - пустое место;" << endl << "1 - чубрик;" << endl << endl;
                                                               
    L4:
 
        for (i = 0; i<vis; i++)
        {
            for (j = 0; j<dlin; j++)
            {                                                  
                if ((a == j)&(b == i)) matrix[j][i] = 1;
                else matrix[j][i] = 0;
                                                               
                if (matrix[j][i] == 0) cout << "0";
                if (matrix[j][i] == 1) cout << "1";
                if (j == dlin - 1) cout << endl;
            }
        }
 
            
 
            cout << endl << endl << a+1 << " " << b+1 << endl << endl;
        
        if (n2 == 0 & tm == 0)
        {
            cout << endl << "куда поставить чубрика?" << endl << "номер строки = ";
            cin >> a;
            if ((a<1) || (a>vis))
            {
                for (int q = 0; q < 150; q++) cout << endl;
                cout << "!!! ЭТО ВНЕ ПОЛЯ !!!" << endl << endl;
                goto L5;
            }
            a = a - 1;
 
            cout << "номер столбца = ";
            cin >> b;
            if ((b<1) || (b>dlin))
            {
                for (int q = 0; q < 150; q++) cout << endl;
                cout << "!!! ЭТО ВНЕ ПОЛЯ !!!" << endl << endl;
                goto L5;
            }
            b = b - 1;
            
            for (int q = 0; q < 150; q++) cout << endl;
            n2 = 1;
            goto L4;
        }
 
        if (tm == 0) cout << endl << "4 - влево;" << endl << "6 - вправо;" << endl << "2 - вниз;" << endl << "8 - вверх;" << endl << endl;
        cin >> xod;
        cout << endl;
        if (xod == 4) if (a >= 1) a = a - 1;
        if (xod == 6) if (a<dlin - 1) a = a + 1;
        if (xod == 2) if (b<vis - 1)b = b + 1;
        if (xod == 8) if (b >= 1) b = b - 1;
        goto L4;
 
        cout << endl << endl;
    }
 
    if (vibor = 1)
    {
 
    }
 
    return 0;
}


"запретный плод сладок". чуваки, может объясните мне, что же такого плохого в goto?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru