[ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
pascal, operacie zo stringom

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
NapísalOffline : 08.04.2010 17:53 | pascal, operacie zo stringom

Ahojte, chcel by som vedieť či dako vydí tuto chybu

Kód:
for i:=length(v) downto 1 do
begin
   if (v[length(v)-i+1] = ' ') then write(' ');
   if not(v[i] = ' ') write(v[i]);
end;


ma to urobiť to že pôvodnú vetu prepíše naopak, ale medzery zachová z pôvodného
príklad
abc d ef ghij kl
lkj i hg fedc ba

proste neviem kde tam môžem mať chybu
uvažujem asi takto
idem odkonca to znamena že ekvivalentné písmeno k tomu čo mam dostanem ako dlžka-aktualna pozicia +1 a ak sa tu nachádza medzera

a ked ho píšem opačne tak tou druhou podmienkou odstraňujem medzery
tak prečo to občas zblbne?

Viem že sa to da aj inak ale ja to robím takýmto spôsobom

Ďakujem


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.04.10
Prihlásený: 18.02.14
Príspevky: 47
Témy: 2 | 2
NapísalOffline : 09.04.2010 6:01 | pascal, operacie zo stringom

Ty len vymienas znaky, ale ak tam nechces davat medzeru, tak sa musis z jedneho konca posunut o poziciu viac. Takze Ti potom nesedi poradie. Co som stihol zlatat je toto. Verim ze sa to da optimalizovat, ale zaklad tu je ;-)
Kód:
Program Test;
uses Crt;
var
  t: string;
  i,len,pos: Integer;

BEGIN
  ClrScr;
  T:='abc d ef ghij kl';
  len:=length (t);
  pos:=len;
  for i:=1 to len do begin
    if (T[i]<>' ') and (T[pos]<>' ') then Write (T[pos]);
    if (T[i]<>' ') and (T[pos]=' ') then begin
      dec (pos);
      Write (T[pos]);
    end;
    if (T[i]=' ') then begin
      Write (' ');
      inc(pos);
    end;
    dec (pos);
  end;
  ReadLn;

END.


Offline

Užívateľ
Užívateľ
pascal, operacie zo stringom

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 09.04.2010 6:22 | pascal, operacie zo stringom

no dobre, ale čo je na tom mojom riešení zle, ved prechadzam pôvodný string a podla toho vkladam medzery
a ked idem naopak tak pišem bez medzier?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.04.10
Prihlásený: 18.02.14
Príspevky: 47
Témy: 2 | 2
NapísalOffline : 09.04.2010 13:14 | pascal, operacie zo stringom

Zober si napr. 14. znak (prva medzera - 3. znak v cykle od konca). Tu ked porovnas prvou podmienkou, tak vysledok ma byt zapisanie medzery na opacnu stranu (teda ako 3. znak na zaciatok). Avsak tu uz nemas kontrolu zo zaciatku, ci tam medzera bude. V tomto pripade je treti znak 'ç', takze tu medzeru musis ignorovat a nacitat k pozicii 3. prvy znak rozny od medzery co je v nasom pripade 13. znak. Toto riesi v mojom programe instrukcia 'dec(pos).
Zjednodusene. V tomto pripade musis vzdy porovnavat koniec k zaciatku a spekulovat s koncom. Ty vo svojom pripade riesis iba to spekulovanie s koncom a nikde nemas porovnavanie so zaciatkom. Tato cast Ti tam chyba.


 [ Príspevkov: 4 ] 


pascal, operacie zo stringom



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Porovnavacie v podmienke so stringom

v Backend

2

453

09.05.2011 12:17

M4rek

V tomto fóre nie sú ďalšie neprečítané témy.

[C] bitove operacie

v Backend

7

1026

13.04.2011 20:27

vama

V tomto fóre nie sú ďalšie neprečítané témy.

Operacie slepého čreva

v Diskusia

17

2535

01.12.2012 20:38

44mato44

V tomto fóre nie sú ďalšie neprečítané témy.

program v pascale mnozinove operacie

v Backend

4

849

18.02.2007 9:00

arzzen

V tomto fóre nie sú ďalšie neprečítané témy.

Windows 7 - PC mrzne, diskové operácie sú pomalé

v Windows

21

1336

13.01.2015 16:02

Megi

V tomto fóre nie sú ďalšie neprečítané témy.

Free Pascal a Turbo Pascal

v Ostatné

0

473

19.12.2014 13:18

Styracoz

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Ostatné

2

1212

09.03.2007 14:08

misolax

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Ostatné

19

3197

30.04.2007 19:54

nikita

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Kôš

1

30

06.11.2018 14:38

werwest

V tomto fóre nie sú ďalšie neprečítané témy.

pascal...

v Ostatné

5

1013

18.10.2008 19:02

redog

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Ostatné

7

733

09.10.2011 21:30

F3RY

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Ostatné

6

836

08.01.2009 17:45

majka090

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Ostatné

11

1392

07.04.2007 16:50

programator

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Ostatné

7

956

14.05.2011 20:04

F3RY

V tomto fóre nie sú ďalšie neprečítané témy.

pascal

v Ostatné

0

813

03.05.2009 12:35

ebb

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal

v Ostatné

4

2669

01.03.2018 8:02

MTK



© 2005 - 2026 PCforum, edited by JanoF