Száll sok helyen a címbe foglalt ige, ami hallgató koromban emlékszem nekem is nagyon kifejezőnek tűnt (amikor már ment, mint a lónak :) írtam is akkor egy rekurzív kis progit, ami valóban derivált, mint a ló. Meg tudnám írni ma is? Meglátjuk... sikerült! Egyszerű a forrás, de ezért a használhatósággal kellett fizetnünk:
- hogy ne kelljen zárójelezéssel és kifejezés kiértékelgetéssel szöszmötölni: a fordított lengyel jelölést használjuk
- nincsenek negatív, vagy több jegyű számok
- csak három függvénnyel foglalkozok (sin, exp, pow) stb.
Teszteljük:
[norbi@sgu der]$ gcc lo.c -o lo
[norbi@sgu der]$ ./lo xx*
x1*1x*
[norbi@sgu der]$ ./lo xxx**
xx*1*x1*1x*+x*+
[norbi@sgu der]$ ./lo xxs+2p
2xxs+21-p*xc1*1+*
Hmmm, jónak tűnik... aki küld be bajnokságot, attól azt várom, hogy néhány inputra legalább ilyen alaposan tesztelje (nem kell lerajzolni, de ne küldjünk forrásokat, hogy tesztelgessem... elég legyen csak azt látnom, hogy a hallgató alaposan megnézte mit is ír ki a saját megoldása.)
Kisbajnokságok
Az 1, 2, 3, 4, 5 trófeásak között keresd majd a kapcsolódóakat!
A megoldásom forrása
A lo.c
// lo.c // // Deriváló progi // Programozó Páternoszter // // Copyright (C) 2011, Bátfai Norbert, nbatfai@inf.unideb.hu, nbatfai@gmail.com // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // // Ez a program szabad szoftver; terjeszthetõ illetve módosítható a // Free Software Foundation által kiadott GNU General Public License // dokumentumában leírtak; akár a licenc 3-as, akár (tetszõleges) késõbbi // változata szerint. // // Ez a program abban a reményben kerül közreadásra, hogy hasznos lesz, // de minden egyéb GARANCIA NÉLKÜL, az ELADHATÓSÁGRA vagy VALAMELY CÉLRA // VALÓ ALKALMAZHATÓSÁGRA való származtatott garanciát is beleértve. // További részleteket a GNU General Public License tartalmaz. // // A felhasználónak a programmal együtt meg kell kapnia a GNU General // Public License egy példányát; ha mégsem kapta meg, akkor // tekintse meg a <http://www.gnu.org/licenses/> oldalon. // // // Version history: // // 0.0.1, iniciális hack: http://progpater.blog.hu/2011/03/18/derivalni_a_lo_is_tud //
A forrás a git repóban: http://sourceforge.net/p/udprog/code/ci/master/tree/
source/binom/Batfai-Barki/lo.c