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

Динамическое программирование - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
c++\noob
 Аватар для c++\noob
-2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 52
07.07.2011, 22:48     Динамическое программирование #1
Помогите пожалуйста,кто может, со следующими задачами, так как в С++ слабо разбираюсь, а к понедельнику надо сдать...
1. Определить сколько в линейном массиве групп одинаковых идущих подряд элементов.
2. Даны длины двух сторон треугольника и один из его углов. Определить максимальный периметр треугольника, который можно построить из этих элементов.
3. Даны символьные строки. Определить общую подстроку максимальной длины.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
c++\noob
 Аватар для c++\noob
-2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 52
10.07.2011, 00:24  [ТС]     Динамическое программирование #21
Спасибо большое, valeriikozlov. В очередной раз выручили...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
c++\noob
 Аватар для c++\noob
-2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 52
14.07.2011, 13:23  [ТС]     Динамическое программирование #22
valeriikozlov, извините за беспокойство, но не могли бы вы в задаче с нахождением подстроки прокомментировать код, т.е дать обозначения переменным,объяснить что делает каждый цикл. Просто для препода надо составить отчёт по программам с комментариями, а я не во всём разбираюсь.
Заранее спасибо!
CAHTEXHUK
Заблокирован
14.07.2011, 13:25     Динамическое программирование #23
летом не можете день выделить на изучение языка?
Nameless One
14.07.2011, 13:43
  #24

Не по теме:

c++\noob
обратный слеш надо экранировать, а то перевод строки получается

valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.07.2011, 17:26     Динамическое программирование #25
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
#include "iostream"
#include <Windows.h>
#include <string>
using namespace std;
 
int main()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        char *s1,*s2;
        s1=new char[50];
        s2=new char[50];
        cout<<"Введи строку1: ";
        gets(s1);
        cout<<"Введи строку2: ";
        gets(s2);
        int p1=strlen(s1);
        int p2=strlen(s2);
        int max=0,// для хранения длины максимально совпадающей подстроки (изначально максимальное совпадение равно 0)
            i_st,// для хранения индекса начала совпадающей подстроки в первой строке (где в первой строке начинается искомая подстрока)
            tmp, // длинну очередной найденной подстроки храним в этой переменной 
            i, j;
        for(i=0;i<p1;i++)// в этом цикле перебираем первую 
                {
                        for(j=0; j<p2; j++)// в этом цикле перебираем вторую строчку
                        {
                                tmp=0;// изначально длину очередной подстроки считаем 0 
                                while(i+tmp<p1 && j+tmp<p2 && s1[i+tmp]==s2[j+tmp])// пока не закончилась первая и вторая строка и символы в первой и второй строчках совпадают
                                {
                                        tmp++;// увеличиваем длину подстроки на 1                                  
                                }
                                if(tmp>max)// если длина найденной подстроки больше чем найденные ранее 
                                {
                                        max=tmp;// в max  заносим длину найденной подстроки
                                        i_st=i; // в i_st заносим начало найденной подстроки в перво1 строке
                                }
                        }
                }
                if(max==0)
                        cout<<"Нет подстроки"<<endl;
                else
                {
                        for(i=0; i<max; i++)// в этом цикле выводим найденную подстроку на экран
                                cout<<s1[i_st+i];
                        cout<<endl;
                } 
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2011, 11:29     Динамическое программирование
Еще ссылки по теме:

C++ Динамическое программирование!
Динамическое программирование C++
C++ Динамическое программирование
C++ Динамическое программирование

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
c++\noob
 Аватар для c++\noob
-2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 52
15.07.2011, 11:29  [ТС]     Динамическое программирование #26
спасибо большое
Yandex
Объявления
15.07.2011, 11:29     Динамическое программирование
Ответ Создать тему
Опции темы

Текущее время: 01:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru