Keresés

Részletes keresés

tbando Creative Commons License 2013.11.28 0 0 23185

Kösz. Majd emésztem :))))

Előzmény: Sánta Kutya (SK) (23181)
Sánta Kutya (SK) Creative Commons License 2013.11.28 0 0 23184

Szó szerint igazad van, de mégis szokás a "legbaloldalibb bitet" legmagasabb helyiértékűnek nevezni.

Merthogy nem feltétlenül jobbról a 8. (http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Most_significant_bit.html -- a Conventions szakaszt nézd a dupla csavarért), ráadásul nem is helyes 8-iknak nevezni, mert nem csak egybyte-os számokról beszélünk, hanem akármekkorákról.

És a nyolcadik utast sokan hetedik utasnak hívják, mert nullától szokás számolni. Tehát a jobb szélső bit jobbról a nulladik...

 

A legmagasabb helyiértékű bit annyiban helytálló, hogy bármely egészt tekinthetünk előjel nélkülinek, és akkor tényleg az a legmagasabb helyiértékű; az meg nem magában a számban rejtőzik, hogy előjeles vagy sem, hanem az értelmezésen.

Ha egy kupac számot elmentesz és nem mondod meg hozzá az adatszerkezetet, akkor amúgy sem lehet rekonstruálni az értéküket. (Hány bitesek? Big vagy little endianként tárolódnak? Vagy BCD-ben? Előjelesen vagy sem?)

Előzmény: Fferi50 (23183)
Fferi50 Creative Commons License 2013.11.28 0 0 23183

Szia!

 

Ezt azért pontosítsuk: negatív az a szám, amelynek az előjelet jelző bitje 1.

Ez pedig nem lehet a szám legmagasabb helyiértékű bitje, hiszen akkor honnan tudnád, hogy -2 vagy a 3. amit ábrázol.

Az előjelbit pedig a jobbról számított 8. bit (ami annyiban legmagasabb "helyiértékű", hogy nem előjeles ábrázolásnál ezen a biten van a legmagasabb hatványhoz tartozó érték).

 

Üdv.

Előzmény: Sánta Kutya (SK) (23182)
Sánta Kutya (SK) Creative Commons License 2013.11.28 0 0 23182

Előjeles esetben negatív az a szám, amelyiknek a legmagasabb helyiértékű bitje 1.

Előzmény: Sánta Kutya (SK) (23181)
Sánta Kutya (SK) Creative Commons License 2013.11.28 0 0 23181

Ugyanazt a számot tekintheted előjeles és előjel nélküli egésznek is. Maga az 11111111 nem egyértelmű, ha nem rendeltél típust hozzá. A legtöbb nyelv ismeri a "signed int" és "unsigned int" típusokat ugyanannyi biten (bár ez éppen C-s megnevezés). Viszont ha -1-nek tekinted, az bitszámtól függetlenül minden egész típusra jó lesz, ha meg előjel nélkülinek, az 8 biten 255, 16 biten 65535 stb. A -1 meg örök és megbonthatatlan. :-)

 

Előjeles: -128 - +127

Előjel nélküli: 0 - +255

stb. több biten is.

 

Egyébként az előző hozzászólásomban az az érdekes, hogy beírás közben jöttem rá magam is. :-)

Előzmény: tbando (23180)
tbando Creative Commons License 2013.11.28 0 0 23180

Most nagy tudatlanságról tanuskodó kérdést teszek fel: az 11111111 a basicben miért -1 és miért nem 255?

Előzmény: Sánta Kutya (SK) (23178)
tbando Creative Commons License 2013.11.28 0 0 23179

Hm. Nem tudtam. Igaz, vba-ban sosem használtam. Viszont most esett le a tantusz, hogy retro image miért írt egy régi hozzászólásában  valami ilyesmit: a=-(b=c) *d. Kösz.

 

Előzmény: Fferi50 (23177)
Sánta Kutya (SK) Creative Commons License 2013.11.28 0 0 23178

Régi BASIC-es hagyomány az igaz értéket -1-nek venni. Ennek az az alapja, hogy ha egy byte-ot (szót stb.) feltöltünk csupa egyes bittel, akkor a kapott szám előjeles egészként -1-nek felel meg. Vagyis ez az a szám, amelyiknek minden bitje 1 (és így pl. a bitenkénti logikai műveletekben is feltétlenül igaz értékként viselkedik).

Előzmény: Fferi50 (23177)
Fferi50 Creative Commons License 2013.11.28 0 0 23177

Szia!

 

Annyi igaz, hogy a hamis mindkét helyen = 0.

 

Az igaz viszont a munkalapon = 1, VBA-ban pedig = -1.

 

Próbáld ki a VBA-ban a True * 1 kifejezést. Eredmény: -1.

 

Csak nyilván, nagyon ritkán "számolunk" vele, inkább használjuk a logikai "értéket". Pedig, mint az adott példa mutatta, egyszerűbb is lehet a képlet  esetenként, ha számnak tekintjük.

 

Üdv.

Előzmény: tbando (23176)
tbando Creative Commons License 2013.11.28 0 0 23176

Apropos: Hogy-hogy nem ugyanaz a szám van rendelve az igaz/hamis-hoz a vba-ban és a munkalapon? Én idáig abban a hiszemben voltam, hogy a hozzárendelt számok mindkét helyen 1 és 0.

Előzmény: Fferi50 (23174)
tbando Creative Commons License 2013.11.28 0 0 23175

Ez a legkreatívabb valóban :))))

 

Az előbbi meg a megoldásod elismerése mellett a saját figyelmetlenségemet díjazta :))))). 

Előzmény: Fferi50 (23174)
Fferi50 Creative Commons License 2013.11.28 0 0 23174

Szia!

 

Ez egy szerintem még szebb verzió:

 

E2-be a  képlet  =(D2="igen")*C2

 

Mivel a logikai kifejezéshez (igaz,hamis) is van számérték rendelve (ami a VBA-ban nem ugyanaz a szám, mint a munkalapon!!!)

 

Üdv.

 

ps. Tudom, a C oszlopnak szólt az elismerés.

 

 

Előzmény: tbando (23170)
lucabrazi Creative Commons License 2013.11.28 0 0 23173

Kösz!

 

 

 

Előzmény: tbando (23171)
tbando Creative Commons License 2013.11.28 0 0 23172

Úgy látom, mások se igen értik, hogy mit szeretnél. Ha még aktuális, tedd fel a Data.hu-ra, vagy küldd el priviben. Megnézem.

Előzmény: Tyorotyere (23139)
tbando Creative Commons License 2013.11.28 0 0 23171

Meg lehet. De attól függően, hogy mik az érényesítés feltételei, lehet egyszerű vagy komplikált.  Lehet, hogy simán alkalmazható az excel Adatok/érvényesítés parancsa, de lehet, hogy önmagában nem elég, és makrót kell az érvényesítéshez írni.  Ezért első lépésben nézd át az említett parancsot, és ha az nem elég, akkor írd meg a konkrét előírásaidat. 

Előzmény: lucabrazi (23169)
tbando Creative Commons License 2013.11.28 0 0 23170

:)))))

Előzmény: Fferi50 (23168)
lucabrazi Creative Commons License 2013.11.28 0 0 23169

Sziasztok!

 

Segítséget szeretnék kérni.

Meg lehet-e adni, pl.:hogy egy cellába csak bizonyos számokat és betűket lehessen írni.

Mást ne engedjen.

 

Köszönöm.

Fferi50 Creative Commons License 2013.11.28 0 0 23168

Szia!

 

Ha jól értelmezem a képet, akkor a C oszlopban található a kérdések (az igen válasz) pontértéke. Ekkor az eredmény oszlop E2 be írd be ezt a képletet:

=ha(D2="Igen";C2;0) és húzd végig az oszlopon.

 

Üdv.

Előzmény: makako6 (23164)
tbando Creative Commons License 2013.11.28 0 0 23167

Én is azt hiszem, hogy a legegyszerübb, ha az F-oszlopba beirod, hogy az adott kérdés igenje 1 vagy 2, az eredményoszlopba meg ezt a képletet:

 

=Ha(d2="igen";f2;0)

Előzmény: makako6 (23164)
Sánta Kutya (SK) Creative Commons License 2013.11.27 0 0 23166

Van rá valami nyomós okod, hogy a B oszlopban két adatot zsúfolj egy cellába? Ellenkezik a táblázatkezelés szellemével.

Előzmény: makako6 (23164)
tbando Creative Commons License 2013.11.27 0 0 23165

Fferinek igaza lehet. De nem csak az excel nyelve lehet eltérő a  két gépen, hanem a területi beállítások is. Írtam a korábbi hsz-emben, hogy hiába copy pasteltem be a Lin.ill  súgó mintapéldáját, az én gépemen nem működött. Azóta rájöttem, hogy miért nem. Hát azért, mert a súgó példa magyarított példa volt, tizedesvesszővel. Én meg a saját gépemen tizedespontot használok. Így mintapélda tizedesvesszője miatt az excelem néhány számot stringnek értelmezett, amit a Lin.ill nem akceptál. Nos ilyen banális beállítási hibákra is vadásszál.

 

De hagy kérdezzem meg újra: hogyan kell a kitevőket kapcsos zárójelbe tenni?

Előzmény: NPW (23162)
makako6 Creative Commons License 2013.11.27 0 0 23164

Sziasztok,

 

Segítséget szeretnék kérni, az alábbi dologban:

Van egy kérdőív, ahol a válasz legördülő listából "igen" és "nem" lehet.

Értékelésnél adott válaszoknál az "igen" válasz érhet 1 vagy 2 pontot kérdéstől függően, a "nem" mindenhol 0 pontot ér.

Cél, a listából kiválasztott "igen" választásánál a kérdéshez tartozó 1 vagy 2 ponttal számoljon a táblázat, "nem"-nél 0 ponttal a mellette levő oszlopban.

 

Próbáltam képletek / definiált nevek / kijelölésből új opciót, ahol volt a listában

 

"igen" - "igen." - "nem" , Hozzárendelt számok 1-2-0.

 

Viszont, választás után mégsem tudta számként értelmezni a mellette levő eredmény oszlop. 

Lehetséges ezt kivitelezni valahogyan?

 

A választ előre is köszönöm, képet csatoltam róla.

 

 

 

Fferi50 Creative Commons License 2013.11.27 0 0 23163

Szia!

 

Milyen nyelvű az otthoni Excel 2007-es otthon és milyen nyelvű az Excel 2010 a munkahelyen?

Mert a nyelvi beállítások okozhatnak problémát.

 

Üdv.

 

Előzmény: NPW (23162)
NPW Creative Commons License 2013.11.27 0 0 23162

A transzponálás akkor kell, ha egy sorban (vízszintesen egymás mellett) van az adatsor. Ha függőlegesen, akkor természetesen nem kell.

 

Viszont azt továbbra sem értem, hogy 2010-esben miért nem működik??????????

Előzmény: tbando (23125)
pimre Creative Commons License 2013.11.27 0 0 23161

Szia, köszönöm. Ezeket majd holnap tesztelem.

 

Ami az ékezetes változókat illeti én már beleütköztem a problémába. Idén egy bő fél éven át egy tagnyilvántartó programot írtam. Ez zömmel interaktív, amit userformokkal oldottam meg. Aztán amikor a program egy angol nyelvű office-t használó kollégám kezébe került, előjött, hogy nem fut a progam. Pontosabban Lost Visual Basic project hibát jelzett. És néhány nap kellett, míg kiderítettük, hogy a hibát a Userformok és a rajtuk elhelyezett ékezetes objektumok okozták. Ezeket néhány órás munkával kijavítottam, szerencsére a függvények és változók nevével nem volt gondja az Excelnek.

Szóval igazad van, és rossz szokásom, hogy használom a kódban az ékezeteket. Lám hová vezet a féktelen nacionalizmus:-))) Még szerencse, hogy nem rovásírást használtam:-)

Szóval ebben is egy nagy elhatározásra lenne szükségem, hogy ezentúl leszokjak az ékezetek használatáról a programkódokban.

Előzmény: Fferi50 (23160)
Fferi50 Creative Commons License 2013.11.27 0 0 23160

Szia!

 

Hogy még szebb legyen, egyáltalán nem kell aktívnak lennie a munkafüzetnek sem:

Az előzőekben leírtak akkor is működnek, ha a

 

Workbooks(wbnév).Activate

sort kihagyod.

 

Hiszen  ws.parent.name = wbnév.  (Azaz a ws munkalapod a wbnév nevű munkafüzetben van!)

 

Még egy tanács: én abszolut nem használom az ékezetes változókat, mivel nem hordozható. Nem tudhatod, hogy egy másik gépen milyen windows fut. Ha nem magyar, akkor az ékezetes, pláne a két pontos, vesszős betűk jól bekavarhatnak.

 

Üdv.

 

Előzmény: pimre (23158)
Fferi50 Creative Commons License 2013.11.27 0 0 23159

Szia!

 

Próbáld így:

Set eredm = ws.Range("A:A").Find(what:=kód, After:=Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

 

Üdv. 

Előzmény: pimre (23158)
pimre Creative Commons License 2013.11.27 0 0 23158

Ezt valóban nem tudtam. Egyébként amióta többen leírtátok, magam is kerülöm a select használatát, viszont tartományban történő keresésnél egyelőre nem tudom kiváltani:

 

dim eredm as Range

...

Workbooks(wbnév).Activate
ws.Range("A:A").Select 
Set eredm = Selection.Find(what:=kód, After:=Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

 

 

Előzmény: Fferi50 (23155)
tbando Creative Commons License 2013.11.27 0 0 23157

Hát akkor erre az listádra csinálj egy egyedi szűrést. Így mindegyik kombiból csak 1 db lesz. Vagy egy Adatok/Adateszközök/Ismétlődések eltávolítását. 

Előzmény: albino combino (23154)
Fferi50 Creative Commons License 2013.11.27 0 0 23156

Még egy kis kiegészítés:

 

Nagyon kevés az olyan művelet, amit csak select után lehet végrehajtani. Általában erre nincs szűkség, "üldözendő" jelenség a kódban. A makrórögzítő utáni kódból ezt kell legelőször kitakarítani. (Meg az olyanokat, mint scroll...)

 

Üdv.

Előzmény: Fferi50 (23155)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!