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

В домике необходимо заменить кирпичики на треугольники - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать процедуру кодирования сообщения длиной k кодом Рида-Маллера порядка r http://www.cyberforum.ru/cpp-beginners/thread1137113.html
Написать процедуру кодирования сообщения длиной k кодом Рида-Маллера порядка r. Может найдется кто поможет с этим заданием или есть исходеники... Заранее спасибо. Вот здесь есть описание и теория
C++ Блок-схема к программе Прошу помощи по написанию блок схемы к программе. Не могу понять, как должна выглядеть блок схема для функции . Задача : Написать функцию, которая определяет, является ли заданное натуральное число точным квадратом. Текст программы : #include <iostream> using namespace std; bool Square(int n) { int ch; http://www.cyberforum.ru/cpp-beginners/thread1137091.html
Программа для создания текстового файла с данными C++
Составить программу, которая создает текстовый файл, содержащий имена, расширения и даты последнего изменения всех файлов текущего подкаталога. Помогите пожалуйста
If и switch можно ли объединить? C++
Недавно начал изучать с++, так что не судите строга если код "Говно код" и я дурак))) #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream> void main() { setlocale(LC_ALL, "Russian"); int day, month, year, last, nd;
C++ Почему при компилировании программы со вторым экземпляром класса изменяются значения первого? http://www.cyberforum.ru/cpp-beginners/thread1137076.html
Здравствуйте. Вопрос: почему при компилировании программы со вторым экземпляром класса изменяются значения первого? namespace SALES { const int QUARTERS = 4; class Sales { private: double sales; double average; double max; double min;
C++ Замена слова в строке Задание: ввести с клавиатуры строку + слово, которое нужно заменить + слово, на которое нужно заменить. Вывести на экран новый вариант строки с измененным словом. Объясните, пожалуйста, как это делается. Только если можно без STL и векторов, а с помощью обычных циклов и стандартных функций работы со строками. Пока догадываюсь, что нужно исходную строку разделить на отдельные слова и... подробнее

Показать сообщение отдельно
gas310
Сообщений: n/a
02.04.2014, 17:09     В домике необходимо заменить кирпичики на треугольники
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
#include <stdlib.h>
#include <GL\glut.h> 
 
 
GLint Width = 512, 
      Height = 512;
int FillFlag = 1;
long k = 0;
 
float Random(int m)
{
    return (float)rand()*m/RAND_MAX;
}
 
void DrawRect(float x1, float y1, float x2, float y2, int FillFlag)
{
    glBegin(FillFlag? GL_QUADS:GL_LINE_LOOP);
    glVertex2f(x1, y1);
    glVertex2f(x2, y1);
    glVertex2f(x2, y2);
    glVertex2f(x1, y2);
    glEnd();
}
 
void Resize(GLint w, GLint h)
{
    Width = w;
    Height = h;
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(-w/2, w/2, -h/2, h/2);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
void Display(void) {
 
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0, 1.0, 0.0);
    //Рисование
    glLineWidth(3.0f);
    glBegin(GL_TRIANGLES);
        glVertex2f(-Width/2+5, Height/2-105);
        glVertex2f(0, Height/2-5);
        glVertex2f(Width/2-5, Height/2-105);
    glEnd();
    glColor3f(1.0, 0.0, 0.0);
    glBegin(GL_LINE_LOOP);
        glVertex2f(-Width/2+10, Height/2-110);
        glVertex2f(Width/2-10, Height/2-110);
        glVertex2f(Width/2-10, -Height/2+5);
        glVertex2f(-Width/2+10, -Height/2+5);
    glEnd();
 
    float r, g, b;
    float x1, y1, x2, y2, dx, dy;
    float xn, yn;
    int f = 0;
    dx = 52; dy = 30;
    x1 = -Width/2+10;
    y1 = Height/2-110;
    xn = (Width - 20)/dx;
    yn = (Height - 110)/dy;
 
    for (int j = 1; j <=yn ; j++)
    {
        if(f){ xn = xn - 1; }
        for (int i = 1; i <=xn; i++)
        {
            r = Random(1);
            g = Random(1);
            b = Random(1);
            glColor3f(r, g, b);
            x2 = x1 + dx;
            y2 = y1 - dy;
            DrawRect(x1, y1, x2, y2, FillFlag);
            x1 = x2;
            x2 = x1 + dx;
        }
 
        y1 = y2;
        y2 = y1 - dy;
        x1 = -Width / 2 + 10 + (dx / 2) * (j % 2);
        f = !(f);
        if (f) { xn = xn + 1; };
    }
 
    glFinish();
    glutSwapBuffers();
}
 
void Mouse (int button, int state, int x, int y)
{
    if (state == GLUT_DOWN)
    {
        switch (button)
        {
        case GLUT_LEFT_BUTTON:
            //Какая-то логика
            k = Random(RAND_MAX);
            break;
        case GLUT_RIGHT_BUTTON:
            FillFlag = !FillFlag;
            break;
        }
        glutPostRedisplay();
    }
}
 
void Keyboard(unsigned char key, int x, int y)
{
    const char ESCAPE = '\033';
    if (key == ESCAPE) exit(0);
}
 
int main (int argc, char **argv) {
    //Инициализация
    glutInit(&argc, argv);
 
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(Width, Height);
    glutInitDisplayMode(GLUT_DEPTH |GLUT_DOUBLE | GLUT_RGBA);
    glutCreateWindow(argv[0]);
    //регистрация обратных вызовов - начало обработки событий
    glutDisplayFunc(Display);
    glutReshapeFunc(Resize);
    glutMouseFunc(Mouse);
    glutKeyboardFunc(Keyboard);
    //Основной цикл GLUT 
    glutMainLoop();
    return 1;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru