Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Jhonny06: Új gépsárkány
- sziku69: Fűzzük össze a szavakat :)
- hege8888: Retro Kocka Kuckó harmadjára Hódmezővásárhelyen
- laca223: Miért győz a kollektív meggyőződés akkor is, ha saját magát teszi tönkre?
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Gurulunk, WAZE?!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Magga: PLEX: multimédia az egész lakásban
-
LOGOUT

Új hozzászólás Aktív témák
-
vz12
tag
válasz
janos1988
#14151
üzenetére
Az első megoldás (is) majdnem jó, teljesen végigmegy a mondaton, a "pont" is megvan a végén, csak éppen nem írja ki az utolsó szót. A szg. ugye nem a kívánságaink, hanem az utasításaink szerint működik, tehát ha nem írja ki a gép, akkor az azért van, mert nem lett megmondva neki.
Nos, akkor mondjuk meg neki, az első megoldást egészítsd ki a for ciklus után, az "end." előtt a következővel:if (s2<>'') then writeln(s2);
-
kovisoft
őstag
válasz
janos1988
#14151
üzenetére
Alapvetően az a probléma mindkét megoldásoddal, hogy az a feltétel, ahogyan vizsgálod az új szó kezdetét, az nem érvényes a string legvégén. A szöveg közepén amikor a szóköz jön, akkor az aktuális előtt lévő karakter a szó utolsó betűje, amikor viszont a szöveg utolsó karakteréhez értél, akkor ez nem igaz, mert ott az aktuális karakter a szó utolsó betűje.
Az első változatodban figyelmen kívül hagyod azt, hogy a szöveg végén nem lesz szóköz, tehát ott marad a "levegőben" még az utolsó szó, amivel nem csinálsz semmit. Ezt még valahogy le kellene kezelni a ciklus után.
A második változatodban valami ilyesmit csinálsz: a szónak akkor van vége, ha szóköz karakter jön vagy ha a szöveg utolsó karaktere jön. De ez nem igaz, mert így kimarad a legutolsó karakter. Ehelyett valami ilyesmit kell csinálnod: a szónak ez az utolsó karaktere, ha tart még tovább a szöveg és szóköz lesz a következő, vagy ha ez a szöveg utolsó karaktere. Az nem korrekt megoldás, hogy túlfuttatod a ciklust, legfeljebb akkor, ha gondoskodsz róla, hogy a túlfuttatott n+1. tömbelemre semmiképpen sem fogsz hivatkozni.
A többieknek: ez Pascal-szerűség, itt 1-től indul a ciklus.
-
janos1988
addikt
válasz
janos1988
#14151
üzenetére
A . lemaradása már megvan, mert ha a for ciklus elér a 45. lefutáshoz akkor i<>45 hamis (mivel i=45) lesz így már a feltétel is hamis lesz, azaz else ág. Na de, hogy tudom mégis kiíratni.

Szerk.: Ha a for ciklushoz hozzáadok egyet for i:=1 to length(s1)+1 és a kiértékeléshez is (i<>length(s1)+1) akkor minden okés. De szerintem ezt nem így kell(ene) megoldani, hogy túlfuttatom a cilust.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Wreckfest 2 - Márciusban indul a korai kiadás
- Számotokra mi volt az év játéka 2025-ben?
- Na, milyen hardver kerül a fa alá?
- Milyen routert?
- Régóta ott van a fiókban az Intel válasza az AMD-féle 3D V-Cache-re
- One otthoni szolgáltatások (TV, internet, telefon)
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Luck Dragon: Asszociációs játék. :)
- Végleg lemondott a régi gépekről a Steam
- Milyen NAS-t vegyek?
- További aktív témák...
- iphone X (10) 64gb space grey független 100% akku
- ERAZER Cooling Kit V2 Vízhűtés - MD 62737 Beast 16 X1 gamer laptophoz
- Fedezd fel az EcoTextil-Méteráru kínálatát
- IPAD Pro 12.9 2.Gen 512GB Wifi+CELLULAR, ÜZLETBŐL, 27% ÁFÁS SZÁMLA. GARANCIA
- Playseat Evolution Pro - Red Bull Racing ESPORTS kiadás - akár karácsonyra!
- BESZÁMÍTÁS! ASROCK B650M R7 8700F 32GB DDR4 512GB SSD RX 6800XT 16GB Zalman Z1 PLUS 750W
- Gamer PC-Számítógép! Csere-Beszámítás! Ryzen 7 3700X / RTX 2070 Super / 32GB DDR4
- Keresünk Galaxy S21/S21+/S21 Ultra/S21 FE
- BESZÁMÍTÁS! MSI Thin A15 B7VE Gamer notebook - R5 7535HS 16GB DDR5 512GB SSD RTX 4050 6GB WIN11
- Bomba ár! Dell Latitude E5440 - i5-4GEN I 4GB I 320GB I 14" I HDMI I Cam I W10 I Gari!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi



