Stránka 1 z 1

pascal help

Napsal: stř 22. dub 2009, 15:50
od BlinDy
zdravím... mám takovou otázku.. nenapsal by mi někod z hlavy, nebo mě na to aspon nekdo nenavedl jak bych mohl v pascalu udelat neco takoveho??

dejme tomu ze mam program napr nejakeho autobazaru.. dam zadat auto (zadam udaje x,y,z) a potom mam hledacky na veci x,y,z a podle toho to najde auto... jak by se dalo udelat zebych zadal SPZku a pak stacilo do hledani zadat napr 3 cisla a vyhledalo by to celou SPZ??? jakoze zadat jen cast hledaneho vyrazu...

snad se to z toho da pochopit :) diky

Re: pascal help

Napsal: stř 22. dub 2009, 16:08
od Zivan
Neco jako, ze mas udaje v TXT souboru, zadas zacatek SPZ a pak staci jen nacist soubor a najit prvni (nebo vsechny) stejne zacinajici SPZ?

A to porovnani je prece jednoduche. Vezmes prvni SPZ a porovnas prvni znak, kdyz sedi, tak druhy znak...atd. az do velikosti toho zadaneho zacatku. Kdyz neco nesedi, tak jdes na dalsi SPZ, kdyz vse sedi a vycerpal jsi pocet zadanych znaku, tak mas spravnou SPZ a vypises ji. A pak bud koncis s vyhledavanim nebo pokracujes na dalsi SPZ, podle toho jestli hledas vsechny nebo jen jednu.

A ted uz staci jen projit to, co jste ve skole urcite delali a naprogramovat to :)

Re: pascal help

Napsal: stř 22. dub 2009, 18:32
od bubanek
V čem máš ty údaje uložené? Record předpokládám...
A máš to v nějakém souboru nebo pole recordů nebo nějaký seznam?

Re: pascal help

Napsal: stř 22. dub 2009, 20:13
od BlinDy
bubanek píše:V čem máš ty údaje uložené? Record předpokládám...
A máš to v nějakém souboru nebo pole recordů nebo nějaký seznam?
ou pomalu na me :) jsem zacatecnik :)) na zacatku programu mam napsane "type xx=record " takze to asi bude record :P
a potom tu druhou otazku opravdu netusim :) jak to poznam?? :P dystak sz at tady ze sebe nedelam verejne blbca :P
Zivan píše:
A to porovnani je prece jednoduche. Vezmes prvni SPZ a porovnas prvni znak, kdyz sedi, tak druhy znak...atd. az do velikosti toho zadaneho zacatku. Kdyz neco nesedi, tak jdes na dalsi SPZ, kdyz vse sedi a vycerpal jsi pocet zadanych znaku, tak mas spravnou SPZ a vypises ji. A pak bud koncis s vyhledavanim nebo pokracujes na dalsi SPZ, podle toho jestli hledas vsechny nebo jen jednu.
hmmmm zkusime uvidime :) diky

Re: pascal help

Napsal: stř 22. dub 2009, 20:27
od bubanek
Jestli máš nějaký kousek toho programu tak ho sem dej.

Re: pascal help

Napsal: stř 22. dub 2009, 20:42
od BlinDy

Kód: Vybrat vše

program auticka;
uses crt;
type auta=record  typ,znacka,barva,stav:string; rokvyroby,rychlost,cena: integer; end;
var  seznam: file of auta;
     auto:auta;
     volba:char;
function  RES:boolean;
          var temp: boolean;
          begin
          temp:=false;
          readln(volba);
          repeat
          if upcase(volba) in ['A','N']
                           then temp:=true;
          until temp=true;
          if upcase(volba)='A'
             then RES:=true
             else RES:=false; end;
pak uz nasleduji jen procedury pro pridavani a vypisy atd... toto je zacatek

Re: pascal help

Napsal: stř 22. dub 2009, 21:28
od bubanek
Pokud by byla SPZ uložená jako string tak bys mohl mít takovouto proceduru:
(ale musel bys urpavit hlavičku)

Kód: Vybrat vše

type auta=record  typ,znacka,barva,stav,spz:string; rokvyroby,rychlost,cena: integer; end;
       soubor=file of auta;
var  seznam: soubor;
     auto:auta;
     volba:char;

Kód: Vybrat vše

procedure foo(var seznam:soubor);
var i:integer;
     spz,s:string;
begin
  writeln('Zadej SPZ k hledání');
  readln(s); 
  while not eof(seznam) do begin
    read(seznam,auto);
    spz:=auto.spz;
    if (spz[1] = s[1]) and (spz[2] = s[2]) and (spz[3] = s[3]) then writeln(spz);
  end;
end;
Je to asi napsané prasácky, ale nemám teď náladu to řešit, navíc pochybuju že váš učitel vyžaduje efektivní programování :oops:

Re: pascal help

Napsal: stř 22. dub 2009, 21:43
od Zivan
No ten IF bych urcite nahradil cyklem. Tenhle kod predpoklada, ze zadas presne 3 znaky z SPZ :)

Po napsani doporucuji poradne otestovat, ze to funguje spravne.

Ja bych nechal autora tvorit podle sebe a pomoct mu s problemy, na ktere v prubehu narazi.

Re: pascal help

Napsal: stř 22. dub 2009, 22:07
od BlinDy
mno jelikoz uz tento rok dodelavam jen abych musel a asi uz to nebudu delat protoze me to nebavi tak moc dekuju za napsani :P zkusim to :) diky moc vsem :)

Re: pascal help

Napsal: stř 22. dub 2009, 23:53
od bubanek
Zivan: Na cyklus si to může klidně upravit sám, tohle je jenom pro představu.
Navíc nevidím důvod mu to nenapsat, já to taky většinou pochopím až když to vidím hotové a touhle cestou se učím.