Matematické Fórum

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

#1 29. 10. 2013 10:23

svobis
Příspěvky: 48
Reputace:   
 

wxMAXIMA POČET NUL

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

 

#2 29. 10. 2013 12:51

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: wxMAXIMA POČET NUL

a, b, c jsou cisla nebo vyrazy? Pokud vyrazy tak neni sance, pokud cisla, tak bych je nejdriv seradil podle velikosti.

Offline

 

#3 29. 10. 2013 18:22

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 885
Reputace:   63 
 

Re: wxMAXIMA POČET NUL

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):

Code:

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é:

Code:

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:

Code:

KolikNul(A,B,C):=apply("+",map(lambda([z],1-signum(abs(z))),[A,B,C]))

LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#4 29. 10. 2013 18:25

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 885
Reputace:   63 
 

Re: wxMAXIMA POČET NUL

Ještě mě napadlo, že by se dala použít smyčka for:

Code:

KolikNul(A,B,C):=block([N:0], for z in [A,B,C] do if is(z=0) then N:N+1, N);

LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson