- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy S24 - nos, Exynos
- Honor Magic6 Pro - kör közepén számok
- iPhone topik
- Samsung Galaxy A56 - megbízható középszerűség
- Mobil flották
- Szuper Szigettel futott be a HyperOS 3
- One mobilszolgáltatások
- Hitelesítették az S26 Ultra csalódást keltő telepét
- Yettel topik
-
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!
- Inmotion Rs E-roller
- Új, bontatlan iPad 11 2025 Wifi, üzletből, apple gyártói garanciával
- Iphone 14 plus eladó
- Új Zsír Lenovo Yoga 7 x360 Érintős Hajtogatós Laptop Tab 16" -50% Ryzen 7 7735U 16/512 FHD+ AMD 2GB
- LENOVO Legion Pro 7 16IRX9H Intel Core i9 14900HX/RTX 4080/32GB RAM/1TB SSD eladó jó áron
- GYÖNYÖRŰ iPhone 13 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3343
- BESZÁMÍTÁS! MSI MAG 255XF FHD IPS 300Hz 0,5ms monitor garanciával hibátlan működéssel
- Samsung Galaxy A55 5G / 8RAM 256GB / Gyárifüggetlen / 12 Hó Garanciával
- Telefon felvásárlás! Samsung Galaxy A15, Samsung Galaxy A25, Samsung Galaxy A35, Samsung Galaxy A55
- ThinkPad T495 Ryzen 3 PRO 3300U 16GB 512GB 1 év garancia (akksi hibás)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest