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

Объясните как работает программа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму положительных и сумму нечетных членов последовательности. Вывести ту сумму, которая по модулю меньше http://www.cyberforum.ru/cpp-beginners/thread1165549.html
вот задачка одна не понял как вывевсти оттуда отрицательные... Программа запрашивает кол-во чисел.,затем вводит целые числа в соответствии с указанным количеством. Программа находит сумму положительных и сумму не четных. Программа выводит ту сумму которая по модулю меньше.
C++ Задача с графом Доброго дня всем, помогите решить задачу, (№75 на картинке), пожалуйста. http://cs618631.vk.me/v618631870/2286/aKJxHEYwIv0.jpg Подумал, может быть задача является типовой и существует некоторый алгоритм для ее решения, однако я ничего умнее, чем простой перебор не могу придумать, хотя даже его реализовать не в состоянии orgraph.h:struct edge { int vertex; edge * next; }; struct orgraph http://www.cyberforum.ru/cpp-beginners/thread1165524.html
Почему иногда отслеживается нажатие на три клавиши сразу, а иногда нет C++
Доброй ночи, кто может объяснить почему иногда отслеживает нажатие на три кнопки сразу, а иногда нет. И как выйти с ситуации *( P.S. Пишу консольный бомбер, надо ставить пробелом бомбу вовремя движения, включая движение по диагонали. #include <iostream> #include <Windows.h> using namespace std; void main() { int left, right, down, up, space;
C++ Блок-схемы функций
Собственно, сабж в заголовке. Буду благодарен, если кто нарисует (правильно нарисует) блок-схемы пары функций. Заранее благодарю. void Player::Set() { cout << "Введите имя - "; cin >> name; cout << "Введите возраст от 18 до 70 лет - "; cin >> age; while(1) { try { if (!cin.good() || age < 18 || age > 70) { cin.clear();
C++ Выскакивает окно с ошибкой "ConsoleApplication.exe has triggered a breakpoint" при использовании free http://www.cyberforum.ru/cpp-beginners/thread1165505.html
char **line = reinterpret_cast<char**>(malloc(4*sizeof(char))); for (int i = 0; i < 4; i++) { line = reinterpret_cast<char*>(malloc(4*sizeof(char))); cin >> line; } for (int i = 0; i < 4; i++) { cout<< line<<endl; free(line);
C++ Алгоритм Карацубы Помогите, пожалуйста с задачей. Ответ вроде верный, но по времени не проходит. Подскажите что переделать.#include <cstdio> #include <cstring> #define forn(i, n) for (int i = 0; i < (int)(n); i++) void Karatsuba( int n, int *c, int *a, int *b ) { if (n <= 8) { forn(i, 2 * n) c = 0; forn(i, n) подробнее

Показать сообщение отдельно
ramin_o
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 10
04.05.2014, 08:46     Объясните как работает программа
Цель задачи была:

Возведение X в 59 степень за самое малое количество шагов.
1. Ввод (X);
2. X2 = X*X;
3. X4 = X2*X2;
4. X8 = X4*X4;
5. X16 = X8*X8;
6. X32 = X16*X16;
7. Y1 = X2*X;
8. Y2 = Y1*X8;
9. Y3 = Y2*X16;
10. Y4 = Y3*X32;
11. Вывод (Y4).

И программно реализовать.
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
 
int main ()
{
    setlocale(LC_ALL,"rus");
    int a[11][11],i,j,k,b[11],l=0,m=0,n=0;
    printf("Нажмите на любую клавишу\n");
    getch();
 
    printf("Первый шаг: заполнение\n");
    for(i=0;i<11;i++)
    for(j=0;j<11;j++)
        if (i==j-1) a[i][j]=1;
    for(i=0;i<11;i++)
    for(j=0;j<11;j++)
        if (a[i][j]!=1) a[i][j]=0;
    a[5][6]=0;
    a[0][6]=1;
    a[1][6]=1;
    a[3][7]=1;
    a[4][8]=1;
    a[5][9]=1;
 
    for(i=0;i<11;i++)
    {
        for(j=0;j<11;j++)
        printf("%d  ",a[i][j]);
        printf("\n");
    }
    printf("Нажмите на любую клавишу\n");
    getch();
 
    printf("Второй шаг: первое смещение\n");
    for (i=10;i>=0;i--)
    for (j=10;j>=0;j--)
        if (a[i][j]==1)
            if (j>i+1)
                for (k=i+1;k<11;k++)
                    if (a[k][j]==1 && j>k+1)
                    {l=k; m=j;}
    printf ("%d %d\n",l,m);
 
    k=0;
    for (i=0;i<11;i++)
    {b[i]=a[k][m]; k++;}
    for (i=0;i<11;i++)
    a[i][m]=0;
 
    for (j=0;j<m;j++)
        if (a[l][j]==1) n=j;
    printf ("%d\n",n);
    for (j=m;j>n;j--)
    for (i=0;i<11;i++)
    if (a[i][j-1]==1) {a[i][j]=a[i][j-1]; a[i][j-1]=0;}
    for (j=m;j>n+1;j--)
    for (i=0;i<11;i++)
        if (a[i-1][j]==1) {a[i][j]=a[i-1][j]; a[i-1][j]=0; break;}
    for (i=0;i<11;i++)
    a[i][n]=b[i];
 
    for (j=9;j>m;j--)
    for (i=0;i<11;i++)
        if (a[i][j]==1) {a[i+1][j]=a[i][j]; a[i][j]=0; i=10;}
    a[2][m+1]=a[6][m+1];
    a[6][m+1]=0;
    for(i=0;i<11;i++)
    {for(j=0;j<11;j++)
    printf("%d  ",a[i][j]);
    printf("\n");}
    printf("Нажмите на любую клавишу\n");
    getch();
 
    printf("Третий шаг: второе смещение\n");
    for (i=10;i>=0;i--)
    for (j=10;j>=0;j--)
        if (a[i][j]==1)
            if (j>i+1)
                for (k=i+1;k<11;k++)
                    if (a[k][j]==1 && j>k+1)
                    {l=k; m=j;}
    printf ("%d %d\n",l,m);
 
    k=0;
    for (i=0;i<11;i++)
    {b[i]=a[k][m]; k++;}
    for (i=0;i<11;i++)
    a[i][m]=0;
 
    for (j=0;j<m;j++)
        if (a[l][j]==1) n=j;
    printf ("%d\n",n);
 
    a[4][6]=a[4][5];
    a[4][5]=0;
    a[6][7]=a[5][6];
    a[5][6]=0;
    for (i=0;i<11;i++)
    a[i][n]=b[i];
    for (j=9;j>m;j--)
    for (i=0;i<11;i++)
        if (a[i][j]==1) {a[i+1][j]=a[i][j]; a[i][j]=0; i=10;}
    a[5][m+1]=a[7][m+1];
    a[7][m+1]=0;
 
    for(i=0;i<11;i++)
    {for(j=0;j<11;j++)
    printf("%d  ",a[i][j]);
    printf("\n");}
    printf("Нажмите на любую клавишу\n");
    getch();
 
    printf("Четвертый шаг: третье смещение\n");
    for (i=10;i>=0;i--)
    for (j=10;j>=0;j--)
        if (a[i][j]==1)
            if (j>i+1)
                for (k=i+1;k<11;k++)
                    if (a[k][j]==1 && j>k+1)
                    {l=k; m=j;}
    printf ("%d %d\n",l,m);
 
    k=0;
    for (i=0;i<11;i++)
    {b[i]=a[k][m]; k++;}
    for (i=0;i<11;i++)
    a[i][m]=0;
 
    for (j=0;j<m;j++)
    if (a[l][j]==1) n=j;
    printf ("%d\n",n);
    a[6][8]=1;
    for (i=0;i<11;i++)
    a[i][n]=b[i];
 
    for(i=0;i<11;i++)
    {for(j=0;j<11;j++)
    printf("%d  ",a[i][j]);
    printf("\n");}
    printf("Нажмите на любую клавишу\n");
    getch();
 
    printf("Пятый шаг: поднимает единицы вверх\n");
    for (j=2;j<11;j++)
    for (i=0;i<11;i++)
        if (a[i][j]==1)
            for (k=i+1;k<11;k++)
                if (a[k][j]==1) {k=11; a[1][j]=1; a[0][j]=1; for (i=2;i<11;i++) a[i][j]=0;}
                else if (k==10) {a[1][j]=1; for (i=2;i<11;i++) a[i][j]=0;}
    a[0][10]=a[1][10];
    a[1][10]=0;
 
    for(i=0;i<11;i++)
    {for(j=0;j<11;j++)
    printf("%d  ",a[i][j]);
    printf("\n");}
    printf("Нажмите на любую клавишу\n");
    getch();
    return 0;
}
Объясните как работает этот код.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru