
Prosba o pomoc pri programování jednodůchého programu v delphi
Zdravim všechny kdo se vyznají v delphi a byli by ochotní mi pomoc. Mam za ukol vytvorit program ktery by vetu kterou napisu ja napsal pozpatku. Bud v delphi nabo v pascalu. Pomozte PROSÍM
No to by snad nemělo být tak těžký, ne?
Větu uložíš do stringu a pak např. pomocí cyklu FOR nebo WHILE projdeš ten řetězec a vypíšeš znaky v opačném pořadí.
A když už by sis nechtěl namáhat hlavu, tak použij Google:
http://www.seminarky.cz/Pascal-text-pozpatku-pomoci -rekurzivni-procedury-81
To je fikany. Musel jsem na to chvili koukat, nez jsem pochopil, jak to pracuje. Chudak profesor...![]:)](https://static.poradna.net/images/smiley/evilsmile.gif)
proč? Vždyť je to typický příklad rekurze. Náš profesor informatiky na gymplu si v těchhle hříčkách liboval; dodnes si pamatuju, jak nás nutil programovat 3D programy (to bylo v roce 92), od té doby nemám rád vektory
. Dneska už jsem to skoro všechno pozapomínal, ale vím, že pomocí rekurze šlo zprasit kdeco..
Výhoda rekurzívity je:
- jednoduchosť zápisu
Nevýhoda:
- pri mnohonásobných volaniach (nebýva to zvykom) pretečenie zásobníka
No to víš, originální řešení udělá větší dojem než nějaký cyklus FOR, který zvládne kdejaka lamka.
Rekurzia je na toto nevhodna. Neefektivne to pracuje s pamatou, nie je tam kontrola na velkost vstupu, zasobnik nie je nekonecny...
rekurzia je nevhodna skoro na vsetko. okrem toho ze sprehladnuje kod, nema ziadny dalsi vyznam.
Ma vyznam v specialnych pripadoch, napr. pri nejakom dynamickom vytvarani kombinacii apod (bola by vhodna napr na predposlednu perm.programming challenge na HTS
ale potom som to aj tak prerobil inac nech to je rychlejsie, s rekurziou to ale mohlo byt kratsie a paradoxne prehladnejsie).
este raz. rekurzia sluzi len na sprehladnenie kodu(co som uz spominal), vsetko sa da napisat bez nej. prinasa do kodu len zvysenu reziu ohladne volania funkcii(odkladanie lokalnych premennych a navratovych hodnot). ale ja ti to vyvracat nebudem, kludne ju pouzivaj.

Ale ved ja netvrdim ze sa neda, pisem o tom kde je to vhodne a kde nie.
Rekurzia je veľmi dobrá pri jednoduchom šachovom algoritme. Jednoduchý preto, lebo netreba kontrolovať čas.
1 ) Větu uložíš do stringu
2 ) zjištíš délku stringu
3 ) Ve foru to vytiskneš v opačném pořadí nějak takto:
v C++ takto:
// edit
Když jsem to ťukal nebyl tu JaFi....
To co je za program, pozeram ze mate vsetci dnes blby den
Naco si vytvaras premennu delkaTextu a naco ju v cykle znizujes, ked ju nikde nepouzivas? V cykle bude snad nieco ako printf("%c", (int)(mujText[i]));
... P.S. resp cely ten cyklus ma byt naopak, for(i=mujText.length(); i>0; i--)
a potom printf("%c", (int)(mujText[i-1]));
Nesouhlasím. Mám to tam sice jen symbolicky, ale jednu věc jsem zatajil.
Výpis do printf by měl obsahovat ještě "substring" od zadu postupně kupředu.
Nicméně je pravda, že napsané to tam nemám.
To co píšeš je jen další možné řešení, ne však jediné.
Robis veci zbytocne komplikovane. substring, zbytocne premenne... Ja som si zvykol automaticky pisat veci efektivne, ma to 2 vyhody: a) pisem 2x menej
b)nemam zbytocny problem s kozistenciou rovnakej informacie vo viacerych premennych, hlavne po pripadnych zmenach programu (vsimni si ze mas to iste (dlzku) na 2miestach (v 2premennych), ak sa zmeni nieco musis menit vsetky miesta = potencialne riziko).
P.S. jasne ze v 3riadkoch to je jedno, ale taketo navyky ludia prenasaju aj do komplikovanych projektov a potom maju problem. Rovnaka informacia nema co hladat na 2miestach.