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

Игра Программистика - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Построить систему классов для описания плоских геометрических фигур http://www.cyberforum.ru/cpp-beginners/thread204811.html
Построить систему классов для описания плоских геометрических фигур: круга, квадрата, прямоугольника. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол. Написать программу, демонстрирующую работу с этими классами. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов. помогите кто знает
C++ Ошибки в программе (поиск минимального значения) #include <iostream> #include <conio> #include <stdio> #include <math> void main() { int a,b,c,min,max; clrscr(); printf("X=min(max(a,b),c)\nVvedite 3 celih chisla vvide: A,B,C\n"); http://www.cyberforum.ru/cpp-beginners/thread204810.html
C++ Проверьте пожалуйста программу
Нужно найти минимальное из М чисел... #include <stdio.h> int M,y; int minimym(M) { int a,y,i; y=99999; for (i=1;i<=M;++i) { printf ("\t%d.",i);
C++ матрица и массив
дана квадратная матрица с размером n и массив с тем же размером. Найти в каждой строке матрицы максимальный элемент,и поместить его в массив. #include <iostream> #include <time.h> #include <windows.h> #include <math.h> #include <D:\\alex\\head-files\\mathem.h> #include <D:\\alex\\head-files\\kurs.h> #include <D:\\alex\\head-files\\factorial.h> using namespace std;
C++ Одномерные Массивы. Решение уже есть. Переделать через функции. http://www.cyberforum.ru/cpp-beginners/thread204779.html
Помогите решить задачу по одномерному массиву ПО ФУНКЦИЯМ. Задачи уже решены, надо их переделать по функциям. 1. Найти номер максимального по модулю элемента массива #include <iostream.h> #include <iomanip.h> #include <math.h> #include <conio.h> int main() {
C++ 3. Заданы два массива по 10 целых чисел в каждом. Найти наименьшее среди чисел первого массива, которое не входит во второй массив (считая, что хотя б вот задача, не могу понять как её доделать?? допишите кто нить.. 3. Заданы два массива по 10 целых чисел в каждом. Найти наименьшее среди чисел первого массива, которое не входит во второй массив (считая, что хотя бы одно такое число есть). #include <stdio.h> #include <conio.h> main () { int i,j, n,x1,x2, k; подробнее

Показать сообщение отдельно
Shultsman
Сообщений: n/a
07.02.2012, 19:16     Игра Программистика
2 Решение
Рассмотрим верхнюю левую клетку игрового поля (0,0) обозначим число, записанное в ней, за X. На нее могут оказать влияние только карточки с центром в ячейке (1,1), причём только своим левым верхним углом (т.е. числами 1 ,7 ,5 и 3 соответственно). Заметим, что числа 3, 5 и 7 взаимно просты (их НОД равен 1), а это означает, что разложение числа X на множители 3 ,5 и 7 однозначно. Таким образом, мы можем определить количество карточек 2 ,3 и 4 типа в клетке (1,1) как максимальные степени 7, 5 и 3 на которые делится число X . При этом следует не забывать изменять и другие клетки, которые накрывает карточка с центром в ячейке (1,1).Чтобы окончательно вычислить ответ в ячейке (1,1) следует также определить число карточек 1 типа. Заметим, что ячейка (1, 0) (обозначим ее содержимое за Y ) изменяется только под воздействием карточек с центром в (1,1) (умножается на чётное число) и карточек с центром в (2,1) (умножается на нечётное число). После удаления карточек 2 ,3 и 4 типа с центром в (1,1) умножать на чётное число эту ячейку может только карточка 1 типа с центром в (1,1) карточки в (2,1) чётность изменить не могут. Таким образом, количество карточек 1 типа с центром в (1,1) определяется как максимальная степень 2 , на которую делится число Y (при этом, опять же, следует не забывать пересчитывать значения во всех ячейках, накрываемой данной карточкой). Тот же метод можно использовать для последовательного вычисления ячеек, двигаясь во внешнем цикле по строкам, а во внутреннем по столбцам. Предыдущая часть будет уже полностью вычислена и не окажет никакого влияния.

Листинг на языке c#

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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Programmistika
{
public abstract class Fishka
    {
        static int size = 3;
        protected int[,] values = new int[size, size];
        public int Size
        {
            get { return Fishka.size; }
        }
        public int this[int index1, int index2]
        {
            get
            {
                return values[index1, index2];
            }
        }
    }
 
    class Fishka1 : Fishka
    {
       
        public Fishka1()
        {
            values[0, 0] = 1;
            values[0, 1] = 8;
            values[0, 2] = 7;
            values[1, 0] = 2;
            values[1, 1] = 0;
            values[1, 2] = 6;
            values[2, 0] = 3;
            values[2, 1] = 4;
            values[2, 2] = 5;
        }
    class Fishka2 : Fishka
    {
        public Fishka2()
        {
            values[0, 0] = 7;
            values[0, 1] = 6;
            values[0, 2] = 5;
            values[1, 0] = 8;
            values[1, 1] = 0;
            values[1, 2] = 4;
            values[2, 0] = 1;
            values[2, 1] = 2;
            values[2, 2] = 3;
        }
    public Fishka3()
        {
            values[0, 0] = 5;
            values[0, 1] = 4;
            values[0, 2] = 3;
            values[1, 0] = 6;
            values[1, 1] = 0;
            values[1, 2] = 2;
            values[2, 0] = 7;
            values[2, 1] = 8;
            values[2, 2] = 1;
        }
    public Fishka4()
        {
            values[0, 0] = 3;
            values[0, 1] = 2;
            values[0, 2] = 1;
            values[1, 0] = 4;
            values[1, 1] = 0;
            values[1, 2] = 8;
            values[2, 0] = 5;
            values[2, 1] = 6;
            values[2, 2] = 7;
        }
    sealed class Pole
    {
        static int size;
        public static int Size
        {
            get { return Pole.size; }
            set { Pole.size = value; }
        }
        static int[,] values;
        private Pole(int razmer)
        {
            Pole.size = razmer;
            values = new int[Size,Size];
            for (int i = 0; i < razmer; i++)
                for (int j = 0; j < razmer; j++)
                    Pole.values[i, j] = 1;
        }
        public int this[int index1, int index2]
        {
            get { return values[index1,index2]; }
            set { values[index1,index2] = value; }
        }
        public static Pole Create_Pole(int razmer)
        {            
            return  new Pole(razmer);
        }
    }
    sealed class Count
    {
        static int size;
        public static int Size
        {
            get { return Count.size; }
            set { Count.size = value; }
        }
        static int[,] values;
        private Count(int razmer)
        {
            Count.size = razmer;
            values = new int[Size,Size];
            for (int i = 0; i < razmer; i++)
                for (int j = 0; j < razmer; j++)
                    Count.values[i, j] = 0;
        }
        public int this[int index1, int index2]
        {
            get { return values[index1,index2]; }
            set { values[index1,index2] = value; }
        }
        public static Count Create_Pole(int razmer)
        {            
            return  new Count(razmer);         
        }
    }
 
    public partial class Form1 : Form
    {
        Fishka selected_fishka;
        Pole pole = Pole.Create_Pole(18);
        Count count = Count.Create_Pole(18);
        Fishka1 fishka1 = new Fishka1();
        Fishka2 fishka2 = new Fishka2();
        Fishka3 fishka3 = new Fishka3();
        Fishka4 fishka4 = new Fishka4();
        public Form1()
        {
 
            InitializeComponent();
 
            dataGridView1.ColumnCount = Pole.Size;
            dataGridView1.RowCount = Pole.Size;
 
            dataGridView2.ColumnCount = fishka1.Size;
            dataGridView2.RowCount = fishka1.Size;
 
            dataGridView3.ColumnCount = fishka2.Size;
            dataGridView3.RowCount = fishka2.Size;
 
            dataGridView4.ColumnCount = fishka3.Size;
            dataGridView4.RowCount = fishka3.Size;
 
            dataGridView5.ColumnCount = fishka4.Size;
            dataGridView5.RowCount = fishka4.Size;
 
            dataGridView6.ColumnCount = Count.Size;
            dataGridView6.RowCount = Count.Size;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < Pole.Size; i++)
                for (int j = 0; j < Pole.Size; j++)
                    dataGridView1[i, j].Value = pole[i, j];
            for (int i = 0; i < fishka1.Size; i++)
                for (int j = 0; j < fishka1.Size; j++)
                    dataGridView2[i, j].Value = fishka1[i, j];
            for (int i = 0; i < fishka2.Size; i++)
                for (int j = 0; j < fishka2.Size; j++)
                    dataGridView3[i, j].Value = fishka2[i, j];
            for (int i = 0; i < fishka3.Size; i++)
                for (int j = 0; j < fishka3.Size; j++)
                    dataGridView4[i, j].Value = fishka3[i, j];
            for (int i = 0; i < fishka4.Size; i++)
                for (int j = 0; j < fishka4.Size; j++)
                    dataGridView5[i, j].Value = fishka4[i, j];
        }
 
        private void dataGridView2_Click(object sender, EventArgs e)
        {
            selected_fishka = fishka1;
        }
 
        private void dataGridView5_Click(object sender, EventArgs e)
        {
            selected_fishka = fishka4;
        }
 
        private void dataGridView4_Click(object sender, EventArgs e)
        {
            selected_fishka = fishka3;
        }
 
        private void dataGridView3_Click(object sender, EventArgs e)
        {
            selected_fishka = fishka2;
        }
 
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                for (int i = e.ColumnIndex, k = 0; k < selected_fishka.Size; k++, i++)
                    for (int j = e.RowIndex, l = 0; l < selected_fishka.Size; l++, j++)
                    {
                        if (k == 1 && l == 1)
                            continue;
                        pole[i, j] = pole[i, j] * selected_fishka[k, l];
                    }
                for (int i = 0; i < Pole.Size; i++)
                    for (int j = 0; j < Pole.Size; j++)
                        dataGridView1[i, j].Value = pole[i, j];
            }
            catch
            {
                MessageBox.Show("Нужно выбрать фишку");
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Calculate();
        
            for (int i = 0; i < Count.Size; i++)
                for (int j = 0; j < Count.Size; j++)
                    dataGridView6[i, j].Value = count[i, j];
        }
 
        public void extract(Fishka fishka, int i, int  j)
        {
            for (int l = 0; l < fishka.Size; l++)
                for (int m = 0; m < fishka.Size; m++)
                    if(fishka[m,l]!=0)
                    pole[i + m, j + l] /= fishka[m,l];
        }
 
        public void Calculate()
        {
            for (int i = 0; i < Pole.Size - 1; i++)
                for (int j = 0; j < Pole.Size - 1; j++)
                    if (pole[i, j] == 1)
                        while (pole[i, j + 1] % 2 == 0)
                        {
                            count[i + 1, j + 1]++;
                            extract(fishka1, i, j);
                        }
                    else
                        while (pole[i, j] != 1)
                        {
                            if (pole[i, j] % fishka2[0, 0] == 0)
                                extract(fishka2, i, j);
                            else if (pole[i, j] % fishka3[0, 0] == 0)
                                extract(fishka3, i, j);
                            else if (pole[i, j] % fishka4[0, 0] == 0)
                                extract(fishka4, i, j);
                            count[i + 1, j + 1]++;
                        }
        }
}
 Комментарий модератора 
Используйте теги форматирования кода!
 
Текущее время: 08:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru