Ve škole jsem dostal za úkol tento program http://vasilx.phorum.cz/sejmi.jpg mám ho skoro hotový ale nevím jak tam mám opravit chybu. Prosím pomožte mi a opravte to, já opravdu nevím co s tím dělat aopravdu to spěchá. http://vasilx.phorum.cz/HSM2.PAS
Fórum › Pascal
Program na formátování hokejových výsledků
Nefunguje odkaz na sejmi.jpg
Předpokládám, že tam je popsaný formát souboru VSTUP.TXT
Tudíž neznáme formát dat. Takže nám popiš formát dat a pošli odkaz na vzorový soubor VSTUP.TXT
Bez těchto informací ti doopravdy nemůžem pomoct. Procedura Nacteni mi příjde podezřelá; ze souboru načítáš znak po znaku, celý algoritmus je dost zašmodrchaný a smrdí to chybou. Jenže bez znalosti vstupních dat je to jenom spekulace. Mimochodem, nenapsal jsi, co přesně v tvém programu nefunguje.
To zadání má být http://www.vasilx.phorum.cz/sejmout.jpg nějak jsem to spletl. Máš pravdu chybná je proceduraNacteni. Po dlouhé kontrole profesorky mi nakonec řekla jak to mám předělat takže je to už přehlednější ale pořád to nejede http://www.vasilx.phorum.cz/HSM22.PAS neustále to hlásí chybu rozsahu v první proceduře jako předtím, kurzor mi vždy skočí na řádek 22.
Aha, zadání je už jasné. Já bych to napsal takhle:
const SOUBOR='hokej.txt';
var t:text;
s1,s2,s3:string;
i,j,k:integer;
begin
Assign(t,SOUBOR);
reset(t);
repeat
readln(t,s3);
Val(s3,i,j); {vyuzijeme figl - zkusim prevest zapis na cislo}
if j=0 then {jestlize prevod probehl bez potizi, tak jde o ukonceni souboru ci o oddelovac utkani}
if i=0 then Break else {0 znamena konec souboru}
else {pozor, druhym ELSE se vracime na uroven "if j=0"}
begin {...takze prevod na cislo se nezdaril, vime tedy, ze jde o zapis golu a vime, kde zacina prvni pismeno}
s1:=Copy(s3,1,j-1); {vytahnu si cislice pred jmenem}
delete(s3,1,j-1); {z puvodniho retezce je vymazu}
insert(':',s1,Length(s1)-1); {doplnim dvojtecku}
{oddeleni jmena od skore bude vetsi problem}
k:=1;
repeat
Val(s3[k],i,j); {pomoci VAL budu proverovat jednotlive znaky zda to je cislice}
if j<>0 then inc(k); {kdyz to neni cislice, tak zvys citac}
until j=0; {jednou ale na cislici narazime}
s2:=Copy(s3,1,k-1); {co je pred ni je jmeno}
delete(s3,1,k-1); {co je za ni je skore}
insert(':',s3,2); {do skore pridam dvojtecku}
writeln(s1,' ',s2,' ',s3); {a vsechno to vypisu na obrazovku}
end;
until false;
Close(t); {zavri soubor}
readln; {pockej na stisk enteru}
end.
Mimochodem, "formát" údaje o skóre zápasu má chybu. Pokud tam bude "111", tak nelze určit, jestli je to 1:11 nebo 11:1. Tedy, ono to poznat jde, ale jenom jenom z kontextu k ostatním gólům.
To VasilX : http://palma.strom.sk/06D/A/
Rád bych podotknul, že 3 znakové časy od 4 znakových lze jednoduše rozeznat. sekundy jsou vždy 2 znakové...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Program na formatovani kodu ... HELP; — založil vcrabz
Formátování — založil Karel
Formátování tabulky — založil Cypves
Formátování textboxu — založil Slim
Formátování data — založil beachboy
Moderátoři diskuze