Выбор из трех чисел.(без кучи if)

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Выбор из трех чисел.(без кучи if)

Re: Помогите

lampa » 31 мар 2008, 20:05

Spasibo bol'shoe!!!!!

Re: Помогите

Medved » 31 мар 2008, 17:09

&quot писал(а):cped=max(min(a,b),min(a,c),min(b,c))
Заметьте надо сделать макс с тремя параметрами. Но это легко: Max3Parameters:=Max(Max(a,b),Max(B,C));

Re: Помогите

Medved » 31 мар 2008, 17:03

Можно так:
[syntax='Pascal']
Program SearchMiddle;
Type Arr=Array[0..4] Of Integer;
Var A:Arr;

Begin
Writeln('Enter A,B,C:');
Readln(A[1],A[2],A[3]);
I:=1;K:=False;
A[0]:=A[3];A[4]:=A[1];
While Not K Do
Begin
K:=(A<=A[ i +1])And(A>=A[I-1])or(A>=A[ i +1])And(A<=A[I-1]);
Inc(I);
End;
Writeln(A[i-1]);
End.
[/syntax]
Лёгкий, не правда ли? И без ИФОВ.

Re: Помогите

airyashov » 31 мар 2008, 16:53

безо всяких условий чистая математика
max=(a+b+abs(a-b))/2
min=(a+b-abs(a-b))/2

cped=max(min(a,b),min(a,c),min(b,c))

уж распишите сами, времени нет :)

Re: Помогите

lampa » 31 мар 2008, 16:45

A kak ???
Vi mne pomogete esli odskagete :)

Re: Помогите

Serge_Bliznykov » 31 мар 2008, 16:34

да, Вы правы - моё решение неверно!!!
а если в одном if написать несколько условий через and/or это будет "честным" решением?.. тогда можно в два if вложится... ;-)

Re: Помогите

lampa » 31 мар 2008, 12:04

Eto ne pravel'no ecli a=8,b=4,c=1
to result=1;

Re: Помогите

airyashov » 31 мар 2008, 10:17

вариант без if получается слишком большим арифметическим выражением, если очень надо напишу

Re: Помогите

airyashov » 31 мар 2008, 09:12

матан учить надо
число=[(a+b+abs(a-b))/2+c-abs((a+b+abs(a-b))/2-c)]/2

Re: Помогите

lampa » 31 мар 2008, 01:59

Spasibo no eto ne pravel'no!!
Na samom dele tam namnogo bol'she if

Вернуться к началу