Portál AbcLinuxu, 10. května 2025 16:16

Dotaz: Pomoc se vzorcem

10.6.2015 01:33 Děda
Pomoc se vzorcem
Přečteno: 286×
Odpovědět | Admin
Ahoj. Může mi někdo pomoc se vzorečkem ? :-(

Potřebuji dosadit hodnotu do "c".
a // mění se
b // nemění se
c = ?
Dejme tomu, že "a" bude od 1 až 356 a "b" bude 600. Jak získat hodnotu "c" aby byla v rozmezí 0 až 600 podle toho, jaká bude zrovna hodnota v "a" ?

Příklad
"a" bude 1, "c" bude 1
"a" bude 178, "c" bude 300
"a" bude 356, "c" bude 600
Díky za pomoc, snad je to k pochopení.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.6.2015 01:58 Radek Isa | skóre: 14
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Odpovědět | | Sbalit | Link | Blokovat | Admin
stačí použít vzorce ze základní školy:
a jednoduché úpravy. Za x dosatě a, a y je vysledek.

356:x = 600:y => y=(x/356)*600
10.6.2015 02:07 Děda
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Díky, ale nepochopil jste dotaz, zkusím to zítra lépe popsat...
AraxoN avatar 10.6.2015 07:58 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Tak to sme dvaja, ktorí nepochopili. V niektorých jazykoch (napr. C/C++) môže v tom výpočte zlostiť celočíselné delenie ale inak vzorec ako taký vyzerá dobre.
vlk avatar 10.6.2015 08:57 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Odpovědět | | Sbalit | Link | Blokovat | Admin

myslis klasicku trojclenku - ta co sa brala na zakladnej skole?

ak sa jedna o celociselne, tak musis najprv nasobit potom delit:

y = a * c / 356

You don't exist, Go away !
10.6.2015 11:37 Děda
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, tak to zkusím lépe popsat. Raději nebudu psát jak to chci udělat ale co chci udělat.

Mám okno o velikosti 'x=500','y=50' - 'x' je šířka a ta mě nezajímá, 'y' je výška okna ta mě zajímá.

Dále pak znám hodnotu 'a=489' - 'a' je celkový počet řádků, které se budou zobrazovat v tom okně

A pak ještě znám hodnotu 'b=1' a 'c=b+y' - 'c' je zobrazení řádku který vidím (od) a 'c' je zobrazení řádku (do)

A poslední hodnota 'd=200' - d je délka jiného okna, ve kterém chci zobrazit pozici scrollbar-u (pozice mezi '1' až 'd')

Snad jsem to napsal k pochopení. Dík.

10.6.2015 11:41 Děda
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Odpovědět | | Sbalit | Link | Blokovat | Admin

!!! EDIT !!! Oprava z 'c' na 'b' na 4 řádku

Ahoj, tak to zkusím lépe popsat. Raději nebudu psát jak to chci udělat ale co chci udělat.

Mám okno o velikosti 'x=500','y=50' - 'x' je šířka a ta mě nezajímá, 'y' je výška okna ta mě zajímá.

Dále pak znám hodnotu 'a=489' - 'a' je celkový počet řádků, které se budou zobrazovat v tom okně

A pak ještě znám hodnotu 'b=1' a 'c=b+y' - 'b' je zobrazení řádku který vidím (od) a 'c' je zobrazení řádku (do)

A poslední hodnota 'd=200' - d je délka jiného okna, ve kterém chci zobrazit pozici scrollbar-u (pozice mezi '1' až 'd')

Snad jsem to napsal k pochopení. Dík.

10.6.2015 12:14 Xerces
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Máš nějaký text, který na výšku přesahuje oblast definovaného okna ve kterém text necháváš zobrazit a vedle máš okýnko (nějak vysoké) s posuvníkem a ty potřebuješ určit pozici toho posuvníku v tom okýnku aby poměrově odpovídala posunutí textu v tom hlavním okně. Chápu to dobře?
10.6.2015 12:16 Děda
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Ano, chápeš to naprosto přesně.
10.6.2015 12:36 Xerces
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Je to pořád ta trojčlenka, jak tady už uváděly. Podíl výšky scrollbaru (okna se scrollbarem) a výšky (počtu řádků) celého textu bez výšky (počtu řádků) viditelného okna se musí rovna podílu pozice posuvníku na scrollbaru a číslu posledního viditelného řádku v tom výřezu.
10.6.2015 12:26 Radek Isa | skóre: 14
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Pořád to samé??

pozice = (b * d)/a
pozice = ((b - y)* d)/a

případně je potřeba si ošetřit pokud počet řádků je menší jak velikost okna.
Druhý případ je pro to aby se na scroollbaru ukázal konec zatím co bude celé okno zaplněné. Další věc co vás může zlobit vy jste chtel od 1 do d pak se musi zvolit vzorec.

pozice = (b * (d - 1)/a) + 1
10.6.2015 13:18 Děda
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Díky, zkoušel jsem ten poslední a funguje
pozice = (b * (d - 1)/a) + 1
, a lze získat i ta délka toho kurzoru ? Čím je přesah menší, délka kurzoru je delší, čili když bude okno 100 a zobrazeno bude 1-100 kurzor bude přes celé okno. Dík
10.6.2015 12:56 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Pokusím se to sepsat tak, jak jsem to pochopil já:

a - celkový počet řádků

y - výška okna (předpokládám, že také v řádcích)

b - číslo prvního zobrazovaného řádku, na začátku b=1

c - číslo posledního zobrazovaného řádku, c=b+y-1 (pozor, tady byla chyba)

d - prostor pro scrollbar (Je v řádcích nebo v bodech?)

Chybí mi velikost scrollbaru, označím ji, označím ji "v" a také je potřeba znát polohu scrollbaru, např. jeho konec (u svislého scrollbaru dolní část) označím "k".

Mělo by platit, že poměr velikosti scrollbaru k celému prostoru pro něj je stejný, jako poměr výšky okna k celkovému počtu řádků, tedy v/d=y/a, odtud se dá snadno určit "v".

Dále poměr počtu zbývajících nezobrazených řádků k celkovému počtu řádků by měl být stejný jako poměr místa za koncem scrollbaru k celkovému prostoru pro něj, tedy (a-c)/a=(d-k)/d, odtud lze zase spočítat "k".

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
10.6.2015 14:11 Děda
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
d - prostor pro scrollbar (Je v řádcích nebo v bodech?)
je v řádcích

Jinak díky ale musím to nastudovat, moc to nehápu :-(
10.6.2015 15:32 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Pomoc se vzorcem
Nic si z toho nedělejte, já jsem si zase nebyl moc jistý, jestli jsem pochopil to Vaše vysvětlení problému :-). Ale případné nejasnosti se rád pokusím vysvětlit.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.