Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2011, 15:18   #1
Fallenangel
Новичок
Джуниор
 
Регистрация: 25.04.2011
Сообщений: 7
Печаль Классы

Господа программисты прошу у вас помощи. Программирование для нашей специальности это не профилирующий предмет. для меня он даеться очень тяжело но что-то делать нужно. Да завтра мне нужно написать и на зачете защитить эти 2 программы на языке С++.
Заранее благодарен.


1.Составьте класс для работы с двумя строками s1 и s2, включив в него сами строки, их длины и следующие методы:
• ввод строк;
• поиск в s1 подстроки максимальной длины, которая содержится и в s2;
• вывод подстроки.



2. Составьте класс для работы с массивом, включив в него сам массив, его размерность, а также предусмотрите следующие методы:
• ввод массива;
• генерацию всех перестановок элементов массива;
• вывод каждой перестановки в файл.

Последний раз редактировалось Fallenangel; 25.04.2011 в 15:24.
Fallenangel вне форума Ответить с цитированием
Старый 25.04.2011, 16:07   #2
j2ko
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 25
По умолчанию

а тебе в какой среде именно нужно задачи решить ...?
j2ko вне форума Ответить с цитированием
Старый 25.04.2011, 16:27   #3
Fallenangel
Новичок
Джуниор
 
Регистрация: 25.04.2011
Сообщений: 7
По умолчанию

Требуют в программе Borland C++
Fallenangel вне форума Ответить с цитированием
Старый 25.04.2011, 16:33   #4
j2ko
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 25
По умолчанию

Ну тогда я начну...ок? жди)))...
j2ko вне форума Ответить с цитированием
Старый 25.04.2011, 16:49   #5
Fallenangel
Новичок
Джуниор
 
Регистрация: 25.04.2011
Сообщений: 7
По умолчанию

Спасибо огромное. Буду ждать.
Fallenangel вне форума Ответить с цитированием
Старый 25.04.2011, 18:00   #6
F1ok
Новичок
Джуниор
 
Регистрация: 25.04.2011
Сообщений: 1
По умолчанию

Тоже очень интерисует №1.. j2ko, буду очень благодарен если поможешь)
F1ok вне форума Ответить с цитированием
Старый 25.04.2011, 18:17   #7
j2ko
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 25
По умолчанию

ти здесь?, первую сделал куда скинуть...?
Ладно ... викину тогда свой код на посмешишче... сильно не ругайте....)))
j2ko вне форума Ответить с цитированием
Старый 25.04.2011, 18:18   #8
j2ko
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 25
По умолчанию

Код:
#include <iostream>
#include <conio.h>


class StringProcessor{
private:
		unsigned char s1_len;
		unsigned char s2_len;
		unsigned char sub_len;
		char s1[255];
		char s2[255];
		char substr[255];
public :
		void Input(){
			std::cout<<("Enter s1:\n");       //вводим две строчки
			std::cin>>s1;
			std::cout<<("Enter s2:\n");
			std::cin>>s2;
			s1_len=(unsigned char)strlen(s1); //вичесляем длину первой и второй строки
			s2_len=(unsigned char)strlen(s2);
			sub_len=0; //пока 0
		}
		void SearchSubString(){
			int i,j,k;
                                 // s1_len - sub_len для того штоби не искать если символов осталось меньше максимальной подстроки
                                // потомушто больше ми итак там не словим...
			for (i=0;i<s1_len-sub_len;i++){            // і - индекс по первой строке
				for(j=0;j<s2_len-sub_len;j++){     // j -  по второй
					k=0;                       // в к сохраняетса длина последовательности
                                                                   // общих символов
                                        // цикл пока символи ровни и пока
                                        // длина последовательности не перевисила одну из строк
                                        // считаем общие симваоли
					while((s1[i+k]==s2[j+k])&&(i+k<s1_len)&&(j+k<s2_len))
						k++;
                                        // если k не ноль значит ми нашли последовательность
                                        // проверем длиннее ли она уже найденим ранее
					if(k>sub_len){
                                                // если так тогда ми нашли подструку большей длини
                                                // и теперь она должна стать максимальной
                                                // копируем в substr с позиции s1[i] но
                                                // для strcpy требуетса передать указатуль
                                                // он равен s1+i , или можно походу ещо &s1[i]
                                                // (но ето не важно), ровно к елементов, тоесть сколько нашли
        					strncpy(substr,(char *)(s1+i),k);
                                                //ставим заглушку в конец строки
						substr[k]='\0';
                                                //меняем текущую длину максимальной
                                                //подстроки на найденую
						sub_len=k;
					}

				}

			}

		}
		void PrintSubString(){
                        //виводим через стандартний вивод подстроку
                        std::cout<<"\nCommon str : \t"<<substr;
		}
		StringProcessor(){
		}
		~StringProcessor(){
		}
};


int main(int argc, _TCHAR* argv[])
{
        StringProcessor p;
        //вводим значение
        p.Input();
        //находим подстроку
        p.SearchSubString();
        //виводим на екран
        p.PrintSubString();
        // задержка
        // можна заменить на
        // while(!kbhit());
        // но мне так проще)))
        getch();
	return 0;
}

Последний раз редактировалось j2ko; 25.04.2011 в 18:22.
j2ko вне форума Ответить с цитированием
Старый 25.04.2011, 18:20   #9
j2ko
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 25
По умолчанию

Что не так спрашевайте...
j2ko вне форума Ответить с цитированием
Старый 25.04.2011, 18:22   #10
Fallenangel
Новичок
Джуниор
 
Регистрация: 25.04.2011
Сообщений: 7
По умолчанию

Это первая?
Fallenangel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы (C#) Andrey_k Помощь студентам 0 23.09.2009 20:56
классы Dimarik Общие вопросы C/C++ 1 18.09.2009 20:32
классы elenSV Общие вопросы C/C++ 0 31.05.2009 09:48