Funkcia Copy - Pascal
Dostali sme za ulohu napisat vlastnu funkciu, ktora ma fungovat ako funkcia copy v Pascale. Neviem si s tym rady, akosi nedostavam napad ako to vsetko dat dohromady. Stacia mi iba nejake zachytne body ako to spravit, hadam mi to dopne. :) Dakujem.
Chceš to rychle nebo pomalu?
Rychle: jestli tím "copy" myslíš kopírování souboru, tak to je už hotové v nápovědě a určitě aspoň milionkrát na nejrůznějších stránkách na internetu
Pomalu: Programování není těžký se naučit, jen se doporučuje začít od jednoduchých zadání a podle toho, jak to postupně budeš zvládat jít do složitějších...
PS: podal jsi velmi málo a navíc zmatených informací, to se v programování nenosí...
Skôr si myslím, že mal namysli funkciu Copy, ktorá extrahuje určitý text z reťazca, od zadanej pozície a počte znakov. Ale to fakt musí upresniť...
ospravedlnujem sa.. ide o funkciu, ktora pracuje so stringami...takto vyzera copy(retazec,od ktoreho znaku,kolko znakov), teda napr. copy(ret,1,2), vysledok je string, priradim ho takto napr: ret2:=copy(ret,1,2)
priklad.
readln(ret);
-- zadam vetu napr. auto
ret1:=copy(ret,1,2)
vznikne au
záchytné body: string=pole tzn. že lze pracovat i s jednotlivými znaky zvlášť, takže třeba ten tvůj příklad se dá udělat tak, že od zadané pozice postupně k cílovému řetězci přičteš daný počet znaků
Stačí sa pozrieť na knižnicu System...
Takto vyzerá funkcia _Copy originál v Unit-e System:
Neviem si predstaviť ako vymyslieť svoju vlastnú funkciu inak...
Jeden cyklus FOR
Uz si to presne nepamatuju, ale pokud jde o TurboPascal, tak tam je tusim indexovani retezce od nuly. To si pripadne oprav. Vysledek se neprirazoval do promenne Result, ale do nazvu funkce. Ale tim si nejsem jisty.
Krátké řetězce jsou i v delfách, např. var S:string[12] je v podstatě array[0..12] of char, kde nultý znak je délka. V TP se přiřazuje pouze do názvu funkce.
Mas pravdu s temi stringy, uz si vzpominam.
Vymyslet se dá spoustu věcí, co třeba pointerová matematika? Neboli žádný cyklus, jen přiřazení odkud se bude brát přímo ze zdroje?
Ještě by šla použít direktiva ASM a napsat to v assembleru
Tojo, to je ale už vyšší dívčí
ne vyssi, ale nizsi. A najefektivnejsi. Je to totiz na jeden riadok :D
rep movsb
samozrejme predtym treba nastavit ecx, esi, edi a selektory (ds, es)
P.S> slusne kniznice vyssich jazykov maju toto urobene pomocou rep movsd a len zvysne 0-3 bajty pomocou movsb, je to tak najefektivnejsie