» Poradna » Programy

Existuje elegantnější algoritmus pro přiřazení?

 |   |  Microsoft Windows 10 Chrome 56.0.2924.87

Zdravím všechny,jak jsem se zde již zmínil, mou vášní jsou kalkulačky a z toho důvodu navštěvuji specializované fórum pro Casia. Objevují se tam zajímavé problémy, které tam pomáhám řešit- částečně je to matematika (např. jak umocňovat matice, jak získat sumu čtverců, riemmanův integrál), částečně programování v jazyce Casio Basic (např. počet s 3D vektory - vektorový součin, normálový vektor, objem, obsah rovnoběžnostěnu) a částečně obojí (např. jak umocnit každý prvek matice zvlášť). Naposledy se tam objevil problém, jak sečíst prvních n prvků ze seznamu.Program sám o sobě je jednoduchý. Jako vstup se používá předem vytvořený list1 a při spuštění programu se zadá n-tá pozicePokud chci začít sčítat jednotlivé prvky od začátku, tj. prvky na pozici 1, 2..n, používám následující přiřazenín-1→zn-z→z Nejprve si z hodnoty n spočítám předposlední hodnotu a posléze si z předposlední hodnoty spočítám 1 (a dále 2, 3..n)- např. n=6, pak si spočítám z=6-1 a pak z=6-5, čímž získám kýženou první pozici.Existuje nějaký elegantnější jednořádkový algoritmus než je tento?Celý program vypadá taktoClrTextInput n,"n-th term" ;zadání pozice0→x ;vynulování součtu a zároveň pomocná hodnotan-1→z ;získání pozice předposledního pvkun-z→z ; získání první pozice prvkudim(list1)→d ;získání počtu prvků v seznamu (dimension, rozměr)If n≤d ;porovnání zadaného n s počtem prvků, test na chybuThenWhile z≤nlist1[z]→y ;získání a zápis prvku na z-té pozici do yx+y→x ;procedura součtuz+1→z  Ukázat celý příspěvek

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Linux Chrome 56.0.2924.87

Ne tendle je nejlepsi a nejrychlejsi.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 52.0

asi to tak bude

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Matematika, Algoritmus, Získání, První pozice, Dimension, Matice, Jednotlivé prvky, Celý program, Sčítání, Kalkulačky, Vektor, Casio, Procedura, Term