Hirdetés
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Xiaomi 17 Ultra - jó az optikája
- Yettel topik
- Honor Magic6 Pro - kör közepén számok
- Mától Huawei okosórákkal is lehet érintésmentesen fizetni
- Tesztkört futott a OnePlus Nord CE6
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
-
Mobilarena

Új hozzászólás Aktív témák
-
vz12
tag
válasz
janos1988
#14178
üzenetére
A "+1", "-1' nem fétis, hanem fontos eleme a működésnek, nevezhetjük trükknek, de igazából ez szükségszerű. Ha belegondolsz és megérted a miértjét, szerintem el fogod ezt ismerni.
A programom ugye alapvetően nem karakterenként, hanem szavanként szeleteli le az input szöveget, pontosabban szóköztől szóközig. Minden lépésben megkeresi a következő szóközt, viszont a megtalált szónak ez a szóköz már nem része, ezért van a "-1". A "szeletelésnél" (delete) viszont nem csak tisztán a szót, hanem a megtalált szóközt is le kell szedni a szöveg elejéről, ezért van a "+1".
Ezt nem úgy kell nézni, hogy 1-1 = 0 és ennyi, nem. A folyamat (ciklusmag) végén 1-1 = 0, ez rendben van, de ez nem azt jelenti, hogy működés közben a "mikrokörnyezetben" ez végig így van.
Csak a végén.
Közel kell menni a részletekhez hogy megértsük a dolgokat, a működést nem (mindig) lehet "távolról" nézni, vagy átlagolni, ahol már összemosódnak a részletek. Pl. ha fociban egy játékos egy meccsen rúgott 2 db gólt tizenegyesből, az ugyanaz, mint ha az egyiket a kapu mellé rúgta balról 1 méterrel, a másikat a kapu mellé rúgta jobbról 1 méterrel, vagyis átlagban 2 gólt rúgott a kapu közepébe ... (?)
A "tmp" változó a függvényemben a jelen esetben nem szükségszerű, mert az eredeti input szövegre menet közben nincs szükség, de más esetben előfordulhatna hogy szükség van rá, ezért én szeretem így csinálni. De itt, most ez valóban tűnhet feleslegesnek.
A tömböket én mindig nullázom induláskor, régebben ez szükségszerű volt (mert nem lehetett arra számítani, hogy 0-val indulnak), az "újabb" pascal verziókban (TP 7.0-tól kezdve) úgy tudom hogy ez a probléma már nincs meg, ez is csak egy (jó) szokásom. Persze az is lehet hogy nem 0 a tömbelemek kezdeti értéke, akkor mindenképpen inicializálni kell, én ezt inkább rutinszerűvé tettem, ennyi.
A "delete(tmp,1,pos1)" az általam írt szóköz végű inputtal jó (mondjuk rá), de ha nem szóközre végződik (azaz normális esetben) NEM JÓ, úgy kell ahogy én csináltam. Próbáld ki az én programomat olyan input szöveggel, aminek a végén nincsenek szóközök (egy sem). Sőt, a "delete(tmp,1,pos1+1)" sem jó. Meg lehet érteni, hogy miért van ez így, de ezt az olvasóra bízom.

Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Bittorrent topik
- Fejhallgató erősítő és DAC topik
- Milyen légkondit a lakásba?
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Óriási ugrás: teszten az ASUS Zenbook A16 és a Snapdragon X2
- Milyen billentyűzetet vegyek?
- Heroes of Might & Magic: Olden Era
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Arch Linux
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- MAKULÁTLAN - Steam Deck OLED 1TB - 3 ÉV GARI + AJÁNDÉK
- Nintendo Switch Lite (Picofly, CFW, Dualboot) eladó
- Intel Core I9 13900KF - 24mag/32szál - Új, bontatlan - Gari 2028.06.15. -ig - Eladó!
- 2. AMD Radeon RX 6700 XT (Reference model, 12 GB, GDDR6, 192 bit)
- Intel Core I9 12900KF - 16mag/24szál - Új, bontatlan, 1 év gari - Eladó!
- BESZÁMÍTÁS! Intel Core i9 9900 8 mag 16 szál processzor garanciával hibátlan működéssel
- Keresünk iPhone 14/14 Plus/14 Pro/14 Pro Max
- Új MSI 15 Katana FHD IPS 144Hz i7-13620H 10mag 16GB DDR5 1TB SSD Nvidia RTX 4060 8GB Win11 Garancia
- Apple iPhone 16 Pro 128GB Black Titanium Karcmentes állapot 91% akkumulátor
- Apple iMac 21,5" 2015 Late / 8GB DDR3 / 1TB HDD / Bill+Egér 6 hó garancia, számlával!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Csak a végén.


