C, C++ Programozás [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

GNU C/C++ példaprogramok

1

Mérnöki számítások C/C++ nyelven 16 feladat a GNU C használóinak Tartalom 1. (a+b)^n együtthatóinak kiszámítása a Pascal háromszög segítségével 2. Játék pszeudo−véletlen számokkal 3. Optimáló eljárás az elõzõ játék automatikus megoldására 4. Szélsõérték keresése az aranymetszés módszerével 5. Aknamezõn biztonságos útvonalat keresõ eljárás 6. Pszeudo−véletlen számokat tartalmazó adatállomány készítése 7. Rendezési eljárások sebességének összehasonlítása 8. Adatsorok egyszerû statisztikái, valamint korrelációja 9. Egyszeû függvények illesztése 10. Illesztések értékelése: variancia analízis, reziduumok elemzése 11. Tetszõleges függvény illesztése optimáló eljárás segítségével 12. Egy kiválasztott kör pontjainak koordinátái 13. Kör illesztése a legkisebb négyzetek módszerével 14. Kör illesztése a sugár irányú négyzetes eltérések minimálásával 15. Klaszter analízis a dinamikus K−közép módszerével 16. Osztályozás tanulóminta adatai alapján

3 5 6 7 10 16 17 22 28 32 39 43 44 49 54 58

Ajánlott irodalon

61

CD−ROM melléklet: \TELEPITO WIN LINUX

Telepítõ készletek MS−DOS / Windows Linux

\FELADATOK 01 EXE ELF 02 EXE ELF ... 16 EXE ELF

Feladatok kidolgozása 1. feladat állományai MS−DOS / Windows bináris Linux bináris 2. feladat állományai MS−DOS / Windows bináris Linux bináris 16. feladat állományai MS−DOS / Windows bináris Linux bináris

GNU C/C++ példaprogramok

2

Elõszó Olyan feladatgyûjteményt tart kezében a kedves olvasó, amely elsõsorban a mûszaki képzésben résztvevõ egyetemi és fõiskolai hallgatók számára készült. A könyv azonban nem csupán nekik ajánlható, hanem mindazoknak, akik mérési eredményeik kiértékelése érdekében nem riadnak vissza a számítógép programozásától. A feladatgyûjtemény célja a mérnöki munka, kutatás során alkalmazható matematikai módszerek bemutatása. Ennek érdekében a közölt C és C++ forráskódok egyszerûek, sok megjegyzéssel kiegészítve. A megértést a változók, eljárások beszédes nevei és a fenntartott szavak kiemelése tovább segíti. A feladatok megértését nagymértékben segíti Pascal vagy C, C++ programozási ismeret, optimálásban, operációkutatásban szerzett gyakorlat. A CD−ROM mellékleten található telepítõ készletek segítségével a számítógépen létrehozható a szükséges fejlesztõi környezet. Ez a környezet magába foglalja a fordító programot (gcc) és Windows, valamint MS−DOS alatt az RHIDE keretrendszert és az Emacs nevû szerkesztõt. Telepítés Windows / MS−DOS alatt: 1., másolja át [CD−ROM]\TELEPITO\WIN\ tartalmát egy ideiglenes könyvtárba 2., indítsa el az INSTALL.EXE önkicsomagoló programot 3., indítsa el a LBINSTDJ.EXE programot Linux rendszerekben a GNU C fordító beépített elem. Ha frissíteni szeretné, a csomagot megtalálja a [CD−ROM]\TELEPITO\LINUX\ könyvtárban. A telepítéshez szükséges tennivalókat tartalmazza a csomag README állománya. Linux rendszerekben a C fordító csak része a GNU Common Compilers csomagnak, ezért a mellékleten megtalálható a Java, Object C, Fortran 77 fordító is. Ha Linux környezetben hibaüzenetet kap a matematikai függvények hiányára hivatkozva, használja a következõ parancsot: gcc forras.c −lm ahol az "−lm" kapcsoló a matematikai könyvtár hozzáfûzését jelenti. Amennyiben további információkra van szüksége a GNU C fejlesztõi környezetrõl (leírások, frissítések), a következõ két internet címet javasolhatom: http://www.delorie.com/djgpp http://gcc.gnu.org 2001. január Jó munkát kívánok: a szerzõ

GNU C/C++ példaprogramok

[1a] Készítsünk programot, amely a képernyõre írja a Pascal−háromszög elsõ N sorát. Ha a programot késõbb bõvíteni szeretnénk, az értékeket célszerû egy mátrixba helyezni. #include /* hagyományos ki− és bemeneti függvények: printf, scanf */ int main(void) { int **H; /* H tartalmazza a háromszöget */ int i,j,n; /* segédváltozók */ printf("A kovetkezo nevezetes szorzat egyutthatoit szamolja ki \n"); printf("ez a program: (a+b)^n \n"); /* beolvas egy 3 és 14 közötti számot */ do{ printf("n (3..14) = "); scanf("%d",&n); }while (n14); /* megnöveljük "n" értékét, mert a legelsõ sor az n=0 kitevõ adatait tartalmazza */ n++; /* memória foglalás; a háromszög minden sora csak a szükséges területet köti le. */ H = new int*[n]; for (i=0;i