Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Вниз

Сижу примус починяю никого не трогаю   Найти похожие ветки 

 
Oleg_Gashev   (2002-04-23 20:37) [0]

И вдруг шедевр вижу. Ну точно первое место.
Вот как надо писать:

if (!my_function(.......)) return false;

Интерестно, кто его обойдет...


 
Malder   (2002-04-23 20:45) [1]

Только я не понял ничего. Что это такое ? И что надо oбойти ?


 
drpass   (2002-04-23 20:50) [2]

Бывало и так: после долгих и мучительных раздумий, делать ли инкремент переменной i, и придя к выводу, что все-таки не делать, получалось...
i:=i;


 
drpass   (2002-04-23 21:31) [3]

>Malder
А чего там понимать?
if (!my_function(.......)) return false
А на трезкую голову люди пишут просто return my_function();


 
Doom   (2002-04-23 21:35) [4]


> drpass © (23.04.02 21:31)

Одно из другого не следует однозначно.


 
Oleg_Gashev   (2002-04-23 21:38) [5]

Просто return my_function(); не напишешь. Если my_function(.......) выхода не должно быть.


 
Oleg_Gashev   (2002-04-23 21:44) [6]

Просто return my_function(); не напишешь. Если my_function(.......)=true выхода не должно быть.



 
Anatoly Podgoretsky   (2002-04-23 22:09) [7]

Это Олег вам проверку на сообразительность устроил :-)
Эквиваленит в Паскале следующий:

if not my_function then begin
Result := False;
Exit;
end;
//продолдение работы функции, если my_function = True
...
Result := True/False;





 
Oleg_Gashev   (2002-04-23 22:14) [8]

:)
Ну если так, тогда скажите, можно ли:


int S=0;
for (int i=0;i<100;i++)
{
if (my_function(i)<0) return S;
S+=my_function(i);
};
return S;


 
Anatoly Podgoretsky   (2002-04-23 22:28) [9]

Ну я не такой большой специалист по Ц и не могу так сказать, можно ли выходить изнутри цикла, если можно то все нормально, очень похоже на подсчет каких то сум и функция my_function возвращает признак прекращения(ошибки) в виде отрицательного числа. Но еще раз подчеркиваю, что мои знания здесь сильно ограничены.


 
VuDZ   (2002-04-23 22:34) [10]

можно, если осторожно :>
но лучше типа

int s = 0, t = 0;
for (int i = 0; i < 100; ++i){
if ((t = my_func(i)) < 0)
return s;

s += t;
}
return s;

я вчера одному челу делал дз по инфоматике, они типа указатели проходили, вышло привмерно такое:

int * pSome = &someArray;
int *result; // in function declaration
int i = 0xBADF00D; // :>

*result = *result * *pSome + *(pSome+offset) * *result * i;


ясный пень, что такой код оттолкнёт любого узачюещего С, но ведь краcиво и понятно :>


 
Oleg_Gashev   (2002-04-23 22:37) [11]

VuDZ:
Правильно, два бала за ответ.


 
VuDZ   (2002-04-23 22:38) [12]

по 50 бальной системе? :>


 
Oleg_Gashev   (2002-04-23 22:40) [13]

Даю два часа на размышление:)


 
VuDZ   (2002-04-23 22:41) [14]

а потом ещё один WTC взорвёте?


 
VuDZ   (2002-04-23 22:44) [15]

если пошла такая пьянка:

int s = 0, i = 0;
while (rand() > 0)
s += rand(), i++;

return s;


 
Oleg_Gashev   (2002-04-23 22:48) [16]

?????????
rand всегда больше 0 и ошибка в третьей строке. А i зачем плюсуется?


 
VuDZ   (2002-04-23 22:49) [17]

млин, да просто написал rand(), это не принципиально, замени на my_foo(i) и всё


 
Oleg_Gashev   (2002-04-23 22:51) [18]

А i зачем плюсуется? Его нет в While.


 
VuDZ   (2002-04-23 22:52) [19]

млин, тогда так:

int s = 0, i = 0;
while (foo(i) > 0)
s += foo(i), i++;
retur s;


так ги де ошибка в ентой 3 строке?
не красиво - да, но ошибки нет


 
Oleg_Gashev   (2002-04-23 22:57) [20]

Суммирование проводится пока i<100.


 
VuDZ   (2002-04-23 23:05) [21]

и?
в общем-то хватило бы напиать и первой строки, но раз уж думать не хочеться:

int s = 0, i = 0;
while ((foo(i) > 0) && (i < 100))
s += foo(i), i++;

return s;


 
Oleg_Gashev   (2002-04-23 23:13) [22]

Ура!!!
четверку дам за ответ. Есть одно но:
Нас условие foo(i)=0 удовлетворяет, а у Вас на него выход.

Поэтому так:


int k,s = 0, i = 0;
while (((k=foo(i)) >= 0)&& (i<100))
s += k, i++;
cout<<s;
return s;


 
Oleg_Gashev   (2002-04-23 23:14) [23]


int k,s = 0, i = 0;
while (((k=foo(i)) >= 0)&& (i<100))
s += k, i++;
return s;


 
VuDZ   (2002-04-23 23:18) [24]

млин, уважаемый, я вам привожу общую мысль, а не рабочий код, так что не надо ля-ля :>

а то в следующий раз на ARM"овском асме приведу пример или в его машинных кодах :>>


 
VuDZ   (2002-04-23 23:27) [25]

просьба не обращать осо внимание на все мои ответы кроме кода :>


 
Oleg_Gashev   (2002-04-23 23:29) [26]

No problem.


 
Lusha   (2002-04-24 14:17) [27]

Oleg_Gashev © (23.04.02 22:14)
Простите, а break в Ц уже отменили? :)


 
VuDZ   (2002-04-24 15:19) [28]

ага, постаносление Правительсва от 1 апреля сего года :>



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.006 c
4-7259
a_k_v
2002-03-27 13:49
2002.06.03
Перехват вызовов API функций из екзешника в NE формате


7-7247
Spy
2002-03-08 19:27
2002.06.03
Система


1-7099
XMbIPb
2002-05-22 12:18
2002.06.03
StringGrid, ComboBox и склероз


1-7069
Fly`
2002-05-20 18:23
2002.06.03
ComboTreeview1


1-6958
Stexen
2002-05-22 16:09
2002.06.03
ДИАЛОГ ВЫБОРА ДИРИКТОРИИ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский