- Xiaomi 14T Pro - teljes a család?
- One mobilszolgáltatások
- Poco F7 – bajnokesélyes
- Szerkesztett és makrofotók mobillal
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Garmin Instinct – küldetés teljesítve
- Apple iPhone 17 Pro Max – fennsík
- Xiaomi 14T - nem baj, hogy nem Pro
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Hivatalos a OnePlus 13 startdátuma
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Új hozzászólás Aktív témák
-
Lortech
addikt
válasz
Sátánné #1047 üzenetére
Az a probléma, hogy a ph motor kiszedi az [ i ] -ket (most azért nem, mert szóközt raktam), mert idézetként tekinti őket. Úgyhogy az előzőekben feleslegesen koptattam a számat a tömbökről, meg az indexelésről, mert odaírtad te, csak mi nem láttuk.
Az else azért nem jó, mert előtte több utasítás van, ezért az IF igaz ágát begin .. end közé kell rakni. Fontos, hogy az end után nem kell pontosvessző, mivel else követi.
Ennek a sornak sincs túl sok értelme: ''tomb[i-1]'';
További probléma, hogy a for után sem rakod begin .. end közé az utasításokat, hogyha több van belőlük, akkor ezt meg kell tenned, különben másképp fog lefutni.
A tömböt 1-10-ig deklaráltad tanácsom ellenére, ami újabb problémához vezet, mivel amikor a i=10-hez érsz, 11. elemre hivatkozol, illetve irany='l' esetén i=1-nél 0. elemre, mely elemek nem léteznek, és ez futási hibát okoz. Ha a számlálós ciklust indexét csökkenteni akarod ''i:=10 to 1''-nél a to helyett downto-t kell használnod. Teljes programot pascalban tőlem biztos nem fogsz látni, sajnálom. Az a legelemibb dolog, hogy a nyelv szintaktikáját megtanulod, ez még nem programozás, de látszólag még ez sem megy. Az általános megoldást már leírtam, úgyhogy hajrá. -
Lortech
addikt
válasz
Sátánné #1040 üzenetére
Érdekes próbálkozás. Nekem valahogy úgy tűnik, hogy vagy nincs is egyáltalán Pascalod, vagy a nyelv alapszintaktikáját nem ismered, és/vagy nem nagyon érted, mit is alkottál.
Kezdjük az első for ciklustól:
readln (tomb ); nem helyes, mivel tomb egy integer típusú tömb, így az egyes elemekre a for ciklus i index változójával hivatkozhatsz így tomb[ i ] (a tömb i-edik eleme). A for ciklus fej részébe nem kell '';'', a do kulcsszó után egyből begin, vagy az egyetlen egy db utasítás vagy vezérlési szerkezet kell.
Tegyük fel, hogy ez megvan, feltöltötted a tömböt.
Ezután az a dolgod, hogy bekéred az irányt, az ''irany'' változót string típusúnak deklaráltad, az egyszerűség kedvéért maradjon így. Bekéred az ''irany''-t, majd if irany:=l then ... elágazással próbálkozol, mely hibás. Pascalban a '':='' jel a legyen egyenlő-t jelenti, melyet értékadásra használhatsz (pl x:= y). Ha összehasonlítasz valamit (itt iranyt az L-lel), ahhoz összehasonlító operátorra van szükséged, az egyenlőségvizsgálathoz ''='' jelet kell használnod '':='' helyett. Van még egy másik probléma is, mégpedig az, hogy a stringeket, karaktereket ' ' közé tesszük. Helyesen tehát ez a sor: if irany='l' then.
A s:=tomb ; sor is hibás, a fentebb említett okok miatt, mivel ''tomb'' az egy tömb, ezért ha egy elemére hivatkozol, meg kell adnod az indexet, hogy épp melyikre, mert anélkül értelmetlen. Innentől egyébként eléggé hiányos, és egyáltalán nem jó a kód.
Tehát eldőlt, hogy ''le'' vagy ''fel'', ezekután át akarod rakni a megfelelő tömbelemeket eggyel kisebb vagy nagyobb helyre, egy s segédváltozó segítségével (ami egyébként kiküszöbölhető kis gondolkodással). Viszont itt nem használtál ciklust, szóval maximum egy-egy elemet tudnál megcserélni, és azok sem a megfelelőek. Amúgy sem cserére van szükséged igazából.
A length függvény stringeken van értelmezve, azok hosszát adja meg, tömb elemszámának meghatározására nem használható, ezt mintha egy másik nyelvből vetted volna át
[Szerkesztve] -
bcs
aktív tag
válasz
Sátánné #1040 üzenetére
szia,
elsőre ránézésre a következő hibákat találtam:
readln (tomb );
ha array-be akarsz írni, akkor meg kell adni, hogy melyik elemébe.
s:=tomb ;
tomb [length (tomb)+1-i]:=s;
ezek nem fognak semmit csinálni, mert s integer, tomb pedig array.
writeln ('az új tömb: ',tomb);
ez sem fog működni, mert a tömböt elemenként lehet csak kiíratni.
illetve nem igazán értem, hogy miután fel lett töltve a tömb, mit szeretnél csinálni.
[Szerkesztve]
Új hozzászólás Aktív témák
- Milyen videókártyát?
- Okos Otthon / Smart Home
- Parkside szerszám kibeszélő
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- BestBuy topik
- Sokkal drágább lett az „olcsó” Tesla, mint várták
- Xiaomi 14T Pro - teljes a család?
- One mobilszolgáltatások
- pechman8: 300B vs. GU50: a Herceg és a Koldus
- Konzolokról KULTURÁLT módon
- További aktív témák...
- BenQ DesignVue PD2705U 4K Designer Monitor!27"/99% sRGB/Pantone/AQCOLOR/Type-c/Mac Ready/Beszámítás!
- Garmin fenix 8 51 mm amoled sapphire karbonszürke DLC titanium
- BESZÁMÍTÁS! Asus B560M i5 10400F 16GB DDR4 512B SSD RX 6600XT 8GB AeroCool DS Cube ADATA 600W
- BESZÁMÍTÁS! Asus H370 i5 8700 16GB DDR4 512B SSD RX 6650 XT 8GB Zalman N5 OF ADATA 600W
- Tágulási tartály Baseflex 12/1.5 6bar
- Motorola Edge 40 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3425, 94% Akkumulátor
- LG 32UN880P - 32" IPS ERGO / 4K UHD / 60Hz 5ms / DisplayHDR 400 / USB Type-C / AMD FreeSync
- GYÖNYÖRŰ iPhone 13 256GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS2247
- Bomba Ár! Lenovo ThinkPad T540P - i5-4GEN I 16GB I 240SSD I mDP I 15,6" HD I Cam I W10 I Gari!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest