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

Может кому понадобится - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамическое программирование http://www.cyberforum.ru/cpp-beginners/thread330754.html
Помогите пожалуйста,кто может, со следующими задачами, так как в С++ слабо разбираюсь, а к понедельнику надо сдать... 1. Определить сколько в линейном массиве групп одинаковых идущих подряд элементов. 2. Даны длины двух сторон треугольника и один из его углов. Определить максимальный периметр треугольника, который можно построить из этих элементов. 3. Даны символьные строки. Определить общую...
C++ Количество выводимых строк в консоли (размер буфера экрана) Такая проблема - по умолчанию в Windows размер "буфера экрана" для консоли - 300 строк. Я вывожу гораздо больше (около 1200 строк) соотв. часть обрезается и на вывод попадает не все. Есть ли какая-нибудь возможность изменить это значение из своей программы, а не руками в Windows? В кач-ве среды использую VS 2010 Заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread330746.html
Опишите класс DETSAD C++
Дорогие, форумчане. Помогите пож-та с заданием Опишите класс DETSAD (номер сада, количество детей, район города, плата за месяц). Введите с клавиатуры данные в массив, состоящий из шести элементов типа DETSAD. Выведите на экран информацию о детских садах указанного района (название района введите с клавиатуры). Если в таком районе еще нет детских садов, то программа должна выдать соответствующее...
C++ Выделить из строки, введенной пользователем, подстроки, разделенные знаком табуляции
всем доброго времени суток. суть вопроса в следующем: необходимо выделить из строки, введенной пользователем, подстроки, разделенные знаком табуляции. Пытаюсь сделать это так (для начала хотел выделить хоть одну подстроку): #include <iostream> #include <string> #include <sstream> using namespace std; int main() {
C++ Переопределение структуры, возможно ли? http://www.cyberforum.ru/cpp-beginners/thread330720.html
Мне нужно добавить поля в одну структу, которая определена в заголовочном файле, на правку которого у меня нет прав... да и корректировать стандартную либу не правильно. Можно ли в коде самой программы переопределить структуру? Если да, то как?
C++ работа с файлом из двубайтовых слов Дан файл состоящий из двубайтовых слов,с начало надо искать в 14 разряде еденицу(перебирая слова по очереди)как только еденица-стоп, затем с этого слова ищем 1-цу в 16 разряде также перебирая слова и ведём подсчёт этих слов одновременно, как только 1-ца в 16 разряде-стоп. Заранее благадарю подробнее

Показать сообщение отдельно
c++\noob
 Аватар для c++\noob
-2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 52
07.07.2011, 23:25     Может кому понадобится
Кое-что из динамического программирования...
Задача подсчёта в прямоугольной матрице количества связных областей (областей состоящих из смежных клеток) . В данном случае вводится матрица из нулей и единиц. Будет подсчитываться кол-во областей состоящих из единиц. 0 - пустая клетка.
Например, я ввожу следующую матрицу размеров 3x5 :
0 1 1 0 0
1 1 0 0 1
1 0 1 0 1
В ней кол-во областей из единиц равно трём, т.е ответ 3.
Вот собственно и код:
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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    int n,m,k=0,In_S=0,In_E=0,i1=0,j1=0;
    int FIFO[100][1];
    int mas[100][100]={};
    cout<<"Введите размеры матрицы(в одной строке через пробел)"<<endl;
    cin>>m>>n;
    cout<<"Введите матрицу из нулей и единиц"<<endl;
    for (int i = 1;i<=m;i++)
    {
        for (int j = 1 ;j<=n;j++)
        {
            cin>>mas[i][j];
        }
    }
    
for (int i = 1;i<=m;i++)
    {
        for (int j = 1 ;j<=n;j++)
        {
            if (mas[i][j]==1)
        {
            k++;
            In_S=0;
            In_E=0;
            FIFO[0][0]=i;
            FIFO[0][1]=j;
            mas[i][j]=2;    
            while (In_S<=In_E)
            { 
                i1 = FIFO[In_S][0];
                j1 = FIFO[In_S++][1];
 
                if (mas[i1+1][j1]==1)
                {
                    FIFO[++In_E][0]=i1+1;
                    FIFO[In_E][1]=j1;
                    mas[i1+1][j1]=2;
                }
 
                if (mas[i1-1][j1]==1)
                {
                    FIFO[++In_E][0]=i1-1;
                    FIFO[In_E][1]=j1;
                    mas[i1-1][j1]=2;
                }
                if (mas[i1][j1+1]==1)
                {
                    FIFO[++In_E][0]=i1;
                    FIFO[In_E][1]=j1+1;
                    mas[i1][j1+1]=2;
                }
                if (mas[i1][j1-1]==1)
                {
                    FIFO[++In_E][0]=i1;
                    FIFO[In_E][1]=j1-1;
                    mas[i1][j1-1]=2;
                }
            }
            }
        }
    }
            
    cout<<"Количество связных областей:  "<<k<<endl;
    system("Pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru