Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.03;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.01 c
1-6999
ga3
2002-05-23 01:56
2002.06.03
программный маус-клик


3-6921
kaif
2002-05-10 17:06
2002.06.03
Еще одна ерунда с FOREIGN KEY


14-7187
lipskiy
2002-04-25 23:12
2002.06.03
Чего, правда это никому не интересно???


1-7085
Maloy
2002-05-21 08:39
2002.06.03
Генерирование отчетов в Word


3-6912
Марья
2002-05-13 05:08
2002.06.03
Помогите студенту!