- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- Meggyi001: Anya, tudsz segíteni a matekban?....Nem érek rá kisfiam, majd segít a ChatGPT...
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- KRTLPC: Ki és hogyan élt túl? Volt ám fennakadás
- Rap, Hip-hop 90'
- Gurulunk, WAZE?!
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Ú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;
begin
bontas:='';
while (s1[pos1]<>#32) and (pos1<>length(s1)+1) do
begin
bontas:=bontas+s1[pos1];
inc(pos1);
end;
if s1[pos1]=' ' then inc(pos1);
end;
var
s2,s3:string;
pos2,t,i:integer;
tomb:array [1..10] of string;
begin
pos2:=1;
t:=1;
s2:=' Ez megint egy szep hosszu proba mondat.';
repeat
s3:=bontas(s2,pos2);
if s3<>'' then
begin
tomb[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!
- Kezünkben a Honor Magic V5
- Milyen processzort vegyek?
- Miért álltak az oldalak egy hétig, mi történt?
- Haladó fájlrendszerek, de mire jók? Ext4 vs Btrfs vs ZFS vs APFS
- Milyen notebookot vegyek?
- Házimozi haladó szinten
- Kínai és egyéb olcsó órák topikja
- Star Trek
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Borotva, szakállnyíró, szakállvágó topic
- További aktív témák...
- OHH! Dell Precision 7560 Tervező Vágó Laptop -70% 15,6" i7-11850H 32/1TB NVIDIA A3000 6GB FHD
- Ohh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- LÉZEREZÉS! külföldi billentyűzet magyarra kb. 20-30p alatt!
- Lian Li HydroShift 360 LCD /3x120mm RGB FAN/ HSLCD36RB (593933)
- Lian Li Hydroshift 360 LCD /FANLESS/ HSLCD36NB (593932)
- BESZÁMÍTÁS! MSI B550M R7 5800X 32GB DDR4 512GB SSD RX Nitro+ 6700XT 12GB Corsair 4000D ASUS ROG 650W
- Huawei P30 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer egerek és billentyűzetek kitűnő árakon! Most extra 10% kedvezmény!
- LG 65" C1 OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD I HDMI I W10 I CAM I Garancia!