Hirdetés
- Poco F7 Pro - jó, de az amatőr sem rossz
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Google Pixel topik
- Milyen okostelefont vegyek?
- One mobilszolgáltatások
- Vivo X200 FE – fenséges méret
- MIUI / HyperOS topik
- Ez lehet az Apple hajlítható telefonjának formája, mérete
- Huawei P40 Pro - kilökték a célegyenesben
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
-
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.

-
janos1988
addikt
válasz
janos1988
#14178
üzenetére
Kisebb sikerélmény, sikerült megoldani a szóközöket.
program szoveg_bontas;function bontas(s1:string;var pos1:integer):string;beginbontas:='';while (s1[pos1]<>#32) and (pos1<>length(s1)+1) dobeginbontas:=bontas+s1[pos1];inc(pos1);end;if s1[pos1]=' ' then inc(pos1);end;vars2,s3:string;pos2,t,i:integer;tomb:array [1..10] of string;beginpos2:=1;t:=1;s2:=' Ez megint egy szep hosszu proba mondat.';repeats3:=bontas(s2,pos2);if s3<>'' thenbegintomb[t]:=s3;inc(t);end;until pos2>length(s2);for i:=1 to t do writeln(tomb[i]);end.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Autós topik
- Steam topic
- Epic Store Ünnepi Ajándékozás - 2. nap: Eternights
- Milyen cserélhető objektíves gépet?
- Bittorrent topik
- Poco F7 Pro - jó, de az amatőr sem rossz
- Mini-ITX
- AMD Navi Radeon™ RX 9xxx sorozat
- LED / LCD TV topik
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- További aktív témák...
- FÉLÁRON SZINTE ÚJ HP HyperX Cloud Stinger Bolti ár:25k INGYEN FOXPOST
- Bomba ár! Fujitsu Lifebook T936: i5-6G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W10 I Gari!
- Bomba ár! HP ProBook 640 G2 - i3-6GEN I 4GB I 128GB SSD I 14" FHD I Cam I W11 I Garancia!
- több db DELL P2417 full HD 1920x1080 IPS monitor HDMI - gari + számla
- Bomba ár! HP ProBook 430 G3 - i5-6GEN I 8GB I 256SSD I HDMI I 13,3" HD I Cam I W10 I Garancia!
- BESZÁMÍTÁS! Gigabyte M27UA 27 160Hz IPS UHD 4K 1ms monitor garanciával hibátlan működéssel
- Beszámítás! LG 32GQ850-B 32 240Hz IPS QHD 1ms monitor garanciával hibátlan működéssel
- Apple iPhone 15 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku:83%
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest

Csak a végén.



