Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра в С++, 7-й тайм 
V
    Опции темы
FiMa1
Дата 28.8.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Доброго здравия, друзья!
Очередная, небольшая задачка, заданная в г. N госпоже N на собеседовании:
Что делает приведенная ниже функция, для чего можно ее использовать? С какими значениями параметров целесообразно вызывать функцию, для чего предназначен каждый из параметров?
Т.к. ответа не было предоставлено, пришлось ограничиться собственным предположением, коим поделюсь позже.. Интересно было бы взглянуть на ваши догадки.
Код
int f(int a[], int b, int c)
{
    for ( int i = 1; --i + b > 0; )
        if( !( c ^ a[~i + 1]) )
            for( ; i-- + b; )
                if( !( c ^a[~i + 1]) )
                    return -i; 

    return -1;
}


Это сообщение отредактировал(а) FiMa1 - 28.8.2007, 15:22
PM   Вверх
Dray
Дата 28.8.2007, 15:44 (ссылка) |    (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: 2
Всего: 6



За такие функции надо руки отрывать


--------------------
忍者

user posted image
PM MAIL   Вверх
Lazin
Дата 28.8.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



ф-я ищет в массиве a из b элементов значение c и возвращает его индекс, иначе -1


Это сообщение отредактировал(а) Lazin - 28.8.2007, 15:52
PM MAIL Skype GTalk   Вверх
Freak_FB
  Дата 28.8.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 1
Всего: 4



Код проанализирован, и вот что получается:
Функция определяет второе вхождение значения, заданного параметром c, в массив, заданный параметром a. Параметром b целесообразно обозначить размер этого массива минус 1.


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Solomon
Дата 28.8.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



Цитата(Freak_FB @  28.8.2007,  15:05 Найти цитируемый пост)
Параметром b целесообразно обозначить размер этого массива минус 1.

всмысле -1.. что задать размер отриц числом???


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
FiMa1
Дата 28.8.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(Lazin @ 28.8.2007,  15:52)
ф-я ищет в массиве a из b элементов значение c и возвращает его индекс, иначе -1

Код
#include <iostream>
using namespace std;

int f(int a[], int b, int c)
{
    for ( int i = 1; --i + b > 0; )
        if( !( c ^ a[~i + 1]) )
            for( ; i-- + b; )
                if( !( c ^a[~i + 1]) )
                    return -i; 

    return -1;
}

void main()
{
    int a[] = { 1, 2, 3, 4, 5, 6, 7 };

    // найти значение 1 в массиве a
    int res = f(a, (sizeof(a) / sizeof(a[0])) - 1, 1);

    if( res != -1)
        cout << res << endl;
    else
        cout << "not found\n";
}

Результат: not found...

Добавлено через 2 минуты и 44 секунды
Цитата(Freak_FB @ 28.8.2007,  16:05)
Код проанализирован, и вот что получается:
Функция определяет второе вхождение значения, заданного параметром c, в массив, заданный параметром a. Параметром b целесообразно обозначить размер этого массива минус 1.

Freak_FB, садитесь - 5! И +1 в репу!

Это сообщение отредактировал(а) FiMa1 - 28.8.2007, 16:10
PM   Вверх
Lazin
Дата 28.8.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата

Параметром b целесообразно обозначить размер этого массива минус 1. 

b - просто размер массива, так как в выражении --i + b > 0 сначала выполнится декримент, а потом сложение и сравнение, про второй элемент согласен.
PM MAIL Skype GTalk   Вверх
Fazil6
Дата 28.8.2007, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(FiMa1 @  28.8.2007,  15:19 Найти цитируемый пост)
Что делает приведенная ниже функция, для чего можно ее использовать? С какими значениями параметров целесообразно вызывать функцию, для чего предназначен каждый из параметров?

ну если тут не наличествует отсутствие вообще всякого смысла, то похоже на поиск в массиве a размером b каких-то повторяющихся значений с
а вообще согласен с 
Цитата(Dray @  28.8.2007,  15:44 Найти цитируемый пост)
За такие функции надо руки отрывать
причем по жопу

PM MAIL   Вверх
FiMa1
Дата 28.8.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата
За такие функции надо руки отрывать, причем по жопу

Будьте внимательны: оторвав руки по самую жопу слушателю на собеседовании, вы можете не получить желаемой работы  smile ! Всем спасибо!
PM   Вверх
JackYF
Дата 28.8.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(FiMa1 @  28.8.2007,  16:19 Найти цитируемый пост)
Будьте внимательны: оторвав руки по самую жопу слушателю на собеседовании, вы можете не получить желаемой работы  smile ! Всем спасибо! 

имхо, для начала следует заявить, что функция не выдерживает критики по параметру понятности и т.д. А потом поинтересоваться - "мне точно сейчас разбирать эту лабуду?"


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Rockie
Дата 28.8.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Цитата(FiMa1 @  28.8.2007,  16:19 Найти цитируемый пост)
Будьте внимательны: оторвав руки по самую жопу слушателю на собеседовании, вы можете не получить желаемой работы

Желаемая работа, как я понимаю - это программы делать, а не brainfuck разгадывать smile

Цитата(FiMa1 @  28.8.2007,  15:19 Найти цитируемый пост)
Очередная, небольшая задачка, заданная в г. N госпоже N на собеседовании

А работодатель с юморком smile




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Любитель
Дата 29.8.2007, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Скажем НЕТ извращенцам!!!

Это сообщение отредактировал(а) Любитель - 29.8.2007, 23:20


--------------------
PM MAIL ICQ Skype   Вверх
Fazil6
Дата 29.8.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Любитель @  29.8.2007,  22:46 Найти цитируемый пост)
Скажем НЕТизвращенцем!!!

читал... 
много думал... 

Так и не решл где тут очепятка...

Это сообщение отредактировал(а) Fazil6 - 29.8.2007, 22:52
PM MAIL   Вверх
Любитель
Дата 29.8.2007, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Теперь пойдёт? smile


--------------------
PM MAIL ICQ Skype   Вверх
zkv
Дата 29.8.2007, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



FiMa1, интересно, а сколько времени давали? 
Цитата(Dray @  28.8.2007,  15:44 Найти цитируемый пост)
За такие функции надо руки отрывать

согласен, при практическом применении.
Но рискну утверждать, что для собеседования задание может считаться вполне приемлимым. 
В конце-концов, возможно, это задание шло на правах "повышенной сложности", и было не обязательным для решения.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0927 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.