Potrebujem pomoc s jednym maturitnym zadanim.
jeho znenie: Peter má zavírený počítač vírusom, ktorý v každom odoslanom maily otočí jednotlivé slová odzadu. Vytvorte program, ktorý:
• bude obsahovať funkciu Otoc, ktorá otočí zadaný reťazec
• prečítajte z textového súboru postupne celý mail a vypíšte ho na obrazovku
• pomocou vami vytvorenej funkcie otočte jednotlivé slová v maily.
Predpokladajme, že text je napísaný korektne a slová sú oddelené práve jednou medzerou. Každá veta končí bodkou a je práve na konci riadku. Text neobsahuje čiarky.
VSTUP : yrbod ned.
misorp sav o einalsaz hcynavodazop vodalkod.
VÝSTUP: dobry den.
prosim vas o zaslanie pozadovanych dokladov.
NEVIEM SI S TYM DAT RADY!!!. prosim ak ma niekto radu ako sa dostat k jednotlivym slovam v riadku poradte!!!..
Fórum › Pascal
MATURITNÉ ZADANIE!!!
Ze zadání není jasné, jestli se má otočený mail vypsat na obrazovku nebo do souboru. Takže předpokládám, že na obrazovku. Taky nevím, jestli chceš vypisovat i původní text nebo jenom ten otočený - předpokládám, že jenom otočený. Dále předpokládám, že řádky v souboru budou mít maximálně 255 znaků a vejdou se do proměnné typu String.
Když si to rozebereme taktikou "shora dolů", dostaneme zhruba toto (řádek je String, soubor je Text):
- Otevři vstupní soubor (Assign, Reset).
- Opakuj, dokud nejsi na konci souboru (While, Eof):
-- Načti ze souboru jeden řádek (Readln).
-- Otoč v načteném řádku jednotlivá slova (rozebereme dále).
-- Vypiš upravený řádek na obrazovku (Writeln).
- Zavři vstupní soubor (Close).
Otočení slov (budou potřeba dva pomocné indexy (typ Byte) Začátek a Konec pro hledání začátků a konců slov a jeden pomocný řetězec (string) na ukládání jednotlivých slov) může vypadat třeba takhle:
- Oba indexy (Začátek i Konec) nastav na první znak řádku (:=1).
- Opakuj, dokud Začátek není na konci řádku (while, Length):
-- Začátek posunuj doprava tak dlouho, dokud nepřejdeš mezery. Zastav se s ním na prvním znaku, který není mezera. (While, Inc)
-- Když Začátek dojel na tečku, skonči (Break).
-- Konec nastav na Začátek.
-- Konec posunuj doprava tak dlouho, dokud ukazuje na písmeno. Zastav se, když znak za ním bude mezera nebo tečka. (While, Inc)
(teď ti Začátek ukazuje na první písmeno slova a Konec na poslední)
-- Zkopíruj úsek od Začátku do Konce do pomocného řetězce (:=, Copy).
-- Nakopíruj pomocný řetězec znak po znaku zpátky do řádku, ale obráceně (For, :=).
-- Začátek nastav o jednu pozici za Konec.
Jednotlivé znaky z řetězce přečteš stejným způsobem jako z běžného pole: znak:=řetězec[pozice]. Pozice může nabývat hodnot od 1 do Length(řetězec). Obráceně to jde taky: řetězec[pozice]:=znak, znak na dané pozici se tím přepíše.
Samozřejmě tohle není jediná možnost, šlo by to i jinak (např. přes Pos a Delete, jak doporučuje Krychlik).
Program ti samozřejmě celý nenapíšu (maturuješ ty, ne já), tohle by ti mělo stačit. Jestli ne, ptej se.
Moje stránka.
Zjistit počet nových příspěvků
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
Zadanie v c — založil matej123
Zadanie v c++ — založil Limdumo
Vypis - zadanie... C — založil Neo015
C# a .NET zadanie — založil Lisieu
Zadanie do školy — založil Lubo
Moderátoři diskuze
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Duch

Nahlásit jako SPAM
IP: 85.135.144.–
Věrný člen

