ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2191  
Старый 09.01.2010, 01:55
STIFFmaster
Новичок
Регистрация: 12.12.2009
Сообщений: 10
Провел на форуме:
14658

Репутация: 0
По умолчанию

Help!!!
помогите, мне с лабой
Написать програму что реализирует две функции с однаковіми именами но разными входящими данными(перегрузка).
Функция max, что находит максимальное значение из двух целых чисел и максимальное значения длиннейшего из слов предложения.
 
Ответить с цитированием

  #2192  
Старый 09.01.2010, 02:06
KI11obyte
Новичок
Регистрация: 08.11.2005
Сообщений: 16
Провел на форуме:
115012

Репутация: 1
По умолчанию

STIFFmaster, как то так

Код:
//фуникция для работы с числами
int max(int a, int b)
{
 if (a>b) return a;
 else return b;
}
//функция для работы со строкой
int max(char * c)
{
 int a;
 int max=1;
 while (c!='\0')
   {
       if (c==' ')
           if (a>max)
               {
                    max=a;
                    a=0;
                }
         if (c!=' ')
            a++;
         c++;
   }

}
З.ы. могут быть мелкие ошибки - давно на С++ не писал, плюс набирал прямо тут, нигде не проверял.
 
Ответить с цитированием

  #2193  
Старый 09.01.2010, 02:20
KI11obyte
Новичок
Регистрация: 08.11.2005
Сообщений: 16
Провел на форуме:
115012

Репутация: 1
По умолчанию

Life а какого черта ты сравниваешь каждый символ подстроки с текущим рассматриваемым символом в строке? ты тогда уж сравнивай со следующими. а еще лучше сделать проверку без привязки к количеству символов строке
да и в цикле конечное значение левое какое то
Код:
int k=0;
for ( int i=0; i<30; i++)
{
    if (stroka[i]==podstroka[k])
       k++;
    if ((stroka[i]!=podstoka[k]) && (!k))
      k=0;
    if (k==strlen(podstroka))
      cout<<i-k;       
}
 
Ответить с цитированием

  #2194  
Старый 09.01.2010, 02:49
[Life]
Banned
Регистрация: 07.01.2010
Сообщений: 132
Провел на форуме:
63422

Репутация: 8
По умолчанию

Цитата:
Сообщение от KI11obyte  
Life а какого черта ты сравниваешь каждый символ подстроки с текущим рассматриваемым символом в строке? ты тогда уж сравнивай со следующими. а еще лучше сделать проверку без привязки к количеству символов строке
да и в цикле конечное значение левое какое то
Код:
int k=0;
for ( int i=0; i<30; i++)
{
    if (stroka[i]==podstroka[k])
       k++;
    if ((stroka[i]!=podstoka[k]) && (!k))
      k=0;
    if (k==strlen(podstroka))
      cout<<i-k;       
}
Спасибо, о то некак не мог додуматся....
 
Ответить с цитированием

  #2195  
Старый 09.01.2010, 03:36
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

Dieselpro задача можно решить из критерия сходимости для последовательности. Для любого числа ε > 0 существует номер N такой, что при всех n > N и любых натуральных m выполняется неравенство |Xn+m - Xn| < ε.

То есть просто проверяем разность текущего и предыдущего значений функции (n - натуральные числа), если он меньше эпсилон, то мы нашли значение этого предела. Плюс поставить ограничение на количество итераций (достаточно большое) или ограничение на значение функции. По достижении которого прекращать поиск и говорить о пределе равном бесконечности или минус бесконечности

[Life] у KI11obyte немного неправильно, его функция не найдет строку 'abc' в строке 'aaabc'
PHP код:
    int j=0;
    for (
int i=0i<30 || !(stroka[i]); i++)
    {
        if (
stroka[i]==podstroka[0])
        for (
j=0;j<0i++)
        {
            if (!
podstroka[i+j]) return 1;
            if (!
stroka[i+j]) return 0;
            if (
stroka[i+j]!=podstroka[j]) break;
        }
    }
    return 
0
return 1 - заменить на сообщение что строка найдена, а return 0 - что нет, ну или оформить все в отдельную функцию. Ведь задание гласит - не использовать СТАНДАРТНЫЕ функции, а это будет собственная
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm

Последний раз редактировалось Gifts; 09.01.2010 в 03:52..
 
Ответить с цитированием

  #2196  
Старый 09.01.2010, 03:54
[Life]
Banned
Регистрация: 07.01.2010
Сообщений: 132
Провел на форуме:
63422

Репутация: 8
По умолчанию

Спасибо Gifts, а то смотрю что написал KI11obyte - и сам думаю видать что-то не так...
а вот
Цитата:
int j=0;
for (int i=0; i<30 || !(stroka[i]); i++)
{
if (stroka[i]==podstroka[0])
for (j=0;j<0; i++)
{
if (!podstroka[i+j]) return 1;
if (!stroka[i+j]) return 0;
if (stroka[i+j]!=podstroka[j]) break;
}
}
return 0;
норм. спс.
 
Ответить с цитированием

  #2197  
Старый 09.01.2010, 04:06
KI11obyte
Новичок
Регистрация: 08.11.2005
Сообщений: 16
Провел на форуме:
115012

Репутация: 1
По умолчанию

Хммм.. а почему не найдет? вроде все норм. хотя если в цикле первое и второе условие поменять местами то будет лучше
 
Ответить с цитированием

  #2198  
Старый 09.01.2010, 04:15
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

Мм, да, будет, но все равно - остается определенный класс подстрок, которые не будут найдены, например:

aaaaabcde
aaaabсde

Когда k будет установлен в ноль переменная i будет равна 4, и нам не хватит даже длины слова для поиска. Необходимо каждый раз возвращаться
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
 
Ответить с цитированием

  #2199  
Старый 09.01.2010, 04:19
KI11obyte
Новичок
Регистрация: 08.11.2005
Сообщений: 16
Провел на форуме:
115012

Репутация: 1
По умолчанию

Мда, ошибка (=
Хотел обойтись без вложенного цикла - получилось плохо (=
 
Ответить с цитированием

  #2200  
Старый 09.01.2010, 18:47
Rammstex
Новичок
Регистрация: 21.11.2006
Сообщений: 5
Провел на форуме:
29759

Репутация: -1
Отправить сообщение для Rammstex с помощью ICQ
По умолчанию

Не лаба, но нужный для зачёта семинар по инфе...
Язык C.
Выполнить упражнения, следуя указаниям в doc-файле.
Очень прошу, к 11 января нужно.
задания http://saveimg.ru/show-image.php?id=a60ed786585359a3b067af75b6e6edf5
doc-файл http://slil.ru/28457448
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ