Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj mám ukol který mi dělá potíže :
udělat funkci v maximě, kde když vložíte 3 hodnoty tak mi musí vypsat kolik hodnot je rovno nule.
urcinulu(a,b,c):=
snažil jsem se kreslit vývojový diagram, ale nějak se pletu asi v podmínkách, které to má obsahovat. díky za pomoc
Offline
a, b, c jsou cisla nebo vyrazy? Pokud vyrazy tak neni sance, pokud cisla, tak bych je nejdriv seradil podle velikosti.
Offline
Zdravím, nejjednodušeji to jde s postupným testováním podmínky.
Pomůžeme si novou proměnou kde si budeme ukládat mezivýsledky (počet hodnot rovnající se nule):
KolikNul(A,B,C):=block([N:0], if is(A=0) then N:N+1, if is(B=0) then N:N+1, if is(C=0) then N:N+1, N );
Jde to napsat i do jednoho řádku bez pomocné proměnné:
KolikNul(A,B,C):=apply("+",maplist(lambda([z],if is(z=0) then 1 else 0),[A,B,C]));
Nebo nebo bez použití podmínky if s využitím funkce signum a abs:
KolikNul(A,B,C):=apply("+",map(lambda([z],1-signum(abs(z))),[A,B,C]))
Offline
Ještě mě napadlo, že by se dala použít smyčka for:
KolikNul(A,B,C):=block([N:0], for z in [A,B,C] do if is(z=0) then N:N+1, N);
Offline