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

Оптимизация кода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запись результата в файл http://www.cyberforum.ru/cpp-beginners/thread700718.html
В файле test.in записана матрица размером N*N. Найти ее определитель. Результат записать в test.out. Для работы с файлами использовать функцию cstdio. Ниже код, который объясняет как считать определитель #include<stdio.h> #include<math.h> #include<conio.h> #include<stdlib.h> #define NN 6
C++ Ошибка в коде (элементы массива упорядочить по возрастанию) #include <iostream> #include <math.h> #include <conio.h> using namespace std; void main() {extern float ZBP(float EVP ,int n); int n,i; static float EVP={3.2,3.0,3.1,3.5,2.9,2.7,3.0,3.6,3.3,3.2}; n=10; http://www.cyberforum.ru/cpp-beginners/thread700715.html
Дана квадратная матрица А размерностью n и вектор В с n элементами, найти А*В C++
найти ошибку после начала ввода элементов вылазит ошибка (скрин) #include<stdio.h> #include<conio.h> #include<locale.h> #define p 50 void main() {setlocale(LC_CTYPE,"Russian"); int i,j,n;
Вычислить НОД C++
Здравствуйте, у меня появилась проблема, написал программу которая вычисляет НОД, но функция не вызывает себя второй раз... #include <iostream> #include <conio.h> using namespace std; void NOD(int, int); int main() { int K, L; cin >> K >> L;
C++ Нужно вычислить факториал 33, 100 и 1000 как можно проще http://www.cyberforum.ru/cpp-beginners/thread700680.html
Нужно вычислить фактариал 33, 100 и 1000 как можно проще
C++ Что такое "терм" Собственно что такое терм и с чем его едят? В книге Страуструпа в разделе грамматики есть такое понятие ТЕРМ и я никак не пойму что это такое? подробнее

Показать сообщение отдельно
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1

Оптимизация кода - C++

18.11.2012, 01:10. Просмотров 636. Ответов 10
Метки (Все метки)

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
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
#include <iostream>
#include <conio.h>
#include "keyBuffer.h"
#include "pause.h"
#include <windows.h>
 
const char up1=201,up2=187;   
const char down1=200,down2=188;   
const char vertical=186,horizontal=205; 
const char ship=219;    
const char round=250; 
const int Y = 20;
const int X = 50;
char matrix[X][Y];
int x = 1; 
int y = 1; 
char key;
int dx = 1; 
int dy = 0;
int r9d = 1; 
int stovp4uk = 1;
int currentDX; int currentDY;
 
using namespace  std;
 
void endGame()
{
     system("cls");
     cout << "You lose!!!";
     system("PAUSE >> void");
}
 
void drawTable()
{
     system("cls");
     //âåðõ äîøêè...
     cout << "\t";
     cout << up1;
     for(int i = 0; i < X; i++)
     {
             cout << horizontal;
             }
     cout << up2 << endl; 
     
     /*  ГЏГЋГ—ГЂГ’ГЋГЉ ÌÀËÞÂÀÍÍß ÑÈÌÂÎËÀ  */
     
     //...ГІГіГІ Г¬Г*ëþºòüñÿ Г±Г*Г¬Г* Г¬Г*òðèöÿ...
     //öèêë ГїГЄГЁГ© Г¬Г*ëþº ê³ëüê³ñòü ðÿä³â (Гі). ГЋГ±ГІГ*Г*ВіГ© ðÿä ïðîïóñêГ*ВєГІГ±Гї...
     for(int i = 0; i < (r9d - 1); i++)
     {
            cout << "\t" << vertical;
            for(int j = 0; j < X; j++)
            {
                    cout << " ";
            }
            cout << vertical;        
            cout << "\n";
     }
     cout << "\t" << vertical; //ïî÷Г*òîê Г¬Г*ëþâГ*Г*Г*Гї ðÿäó Гў ÿêîìó çì³éêГ*
     
     
     //öèêë ГїГЄГЁГ© Г¬Г*ëþº â³äñòГ*Г*Гј ГўВіГ¤ ГЄГ°Г*Гѕ äî ïî÷Г*òêîâîãî ñèìâîëó (Гµ)
     for(int i = 0; i < stovp4uk; i++)
     { 
            cout << " ";                                            
     }
     
     
     cout << matrix[x][y]; //âèâîäèòü Г*Г* ГҐГЄГ°Г*Г* Г±Г*Г¬ ñèìâîë
     
     //äîäГ*Вє ïðîá³ëè äëÿ Г§Г*âåðøåГ*Г*Гї ðÿäêГ*
     for(int i = 0; i < ((X-1) - stovp4uk); i++)
     {
             cout << " ";
     }
     
     
 
     cout << vertical << "\n";
     //äîäГ*Вє ðÿäêè 
     for(int i = 0; i < (Y - r9d); i++)
     {
             cout << "\t" << vertical;
             for(int j = 0; j < X; j++)
             {
                    cout << " ";
             }
             cout << vertical << "\n";
     }   
     /*  ГЉВІГЌГ…Г–Гњ ÌÀËÞÂÀÍÍß ÑÈÌÂÎËÀ  */
     
     
     
     
     //...Г* ГІГіГІ Г*ГЁГ§        
     cout <<"\t";
     cout << down1;
     for(int i = 0; i < X; i++)
     {
             cout << horizontal;
             }
      cout << down2;
      }               
int main()
{
    matrix[x][y] = '@';
    bool alpha = false;
    while(!alpha)
    {
    drawTable();
    /*x = x + dx; y = y + dy;
    r9d = r9d + dy; stovp4uk = stovp4uk + dx;
    matrix[x][y] = '@';*/
    if(x < 1) { alpha = true; endGame(); }
    if(y < 1) { alpha = true; endGame(); }
    if(x > (X - 2)) { alpha = true; endGame(); }
    if(y > 20) { alpha = true; endGame(); }
    key = KursorKeyPressed();
    switch(key)
    {
               case 3: dy = -1; //UP
                        dx = 0;
               break;
               case 4: dy = 1; //DOWN
                        dx = 0;
               break;
               case 1: dx = -1; //LEFT
                        dy = 0;
               break;
               case 2: dx = 1; //RIGHT
                        dy = 0;
               break;
               default: dx = currentDX;  dy = currentDY; break;             
    }
    
    x = x + dx; y = y + dy;
    r9d = r9d + dy; stovp4uk = stovp4uk + dx;
    matrix[x][y] = '@';
    currentDX = dx; currentDY = dy;
    pPause();
}
    /*cout << endl;
    //cout << "X: " << x << "      " << "Y: " << y;                                                                                   
    getch();*/
    return 0;
}
пауза:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
#include "pause.h"
 
//ÏÀÓÇÀ
void pause()
{
     int i = 1;
     while(i < 10000000)
     {
             i = i + 1;
     }
}
void pPause()
{
     for(int i = 0; i < 3; i++)
     {
             pause();
             }
}
обработчик нажатий клавиш:
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
#include <iostream>
#include <conio.h>
#include "keyBuffer.h"
#include <windows.h>
#include <stdio.h> 
 
using namespace std;
int KursorKeyPressed(void)
{
        if(GetAsyncKeyState(VK_LEFT))
        {
            keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);//ÎòæèìГ*ГҐГ¬ ГЄГ*îïêó
            return 1;//LEFT
            
        }
        if(GetAsyncKeyState(VK_RIGHT))
        {  
            keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP, 0);//ÎòæèìГ*ГҐГ¬ ГЄГ*îïêó
            return 2;//RIGHT
        }
        if(GetAsyncKeyState(VK_UP))
        {
            keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0);//ÎòæèìГ*ГҐГ¬ ГЄГ*îïêó
            return 3;//UP
        }
        if(GetAsyncKeyState(VK_DOWN))
        {
            keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);//ÎòæèìГ*ГҐГ¬ ГЄГ*îïêó
            return 4; //DOWN
        }
}

ну и хедеры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//header 1
#ifndef KEY
#define KEY
int KursorKeyPressed(void);
#endif
 
 
//header 2
#ifndef PAUSE
#define PAUSE
void pause(void);
void pPause(void);
#endif
Как можно оптимизировать код, чтобы нагрузка на процессор меньшей была (проблема в функции пауза) И как можно увеличить частоту обновления игрового поля (чтобы не было бликов)

З.Ы. Взгляните опытным глазом на код, скажите какие ошибки при оформлении кода (сам то я знаю что для других это наверное каша, но я стараюсь оформлять код хорошо (без всяких там goto). Хорошая критика как ничто поможет мне)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru