Feladat: "Készíts kétváltozós függvényrajzló programot
pszeudoplasztikus módszerrel, 1 irányból megvilágítva a függvényt!"
Környezet: IBM PC, PC DOS 7.0 vagy avval kompatibilis operációs rendszer.
Használat: (a program indítása)
A program "infa1be2.exe" néven található és a neve leírásával indítható.
A program a számbillenytûk (0..9) segítségével - illetve, ha a graph unit hiányzik, akkor az írógép-billentyûzet megfelelõ billentyûi segítségével - vezérelhetõ.
A lehetséges elágazások (dõlve vannak a legfelsõ sorok szövegei):
Fõmenü: (Elvileg evvel indul a program, megnevezvén a feladatot a legfelsõ sorban)
1: egy korábban megadott függvény ábrázolása
2: kilépés a programból
Almenü:
1-tõl 6-ig (ill. 1..9): az ott megnevezett függvény képének megtekintése
0: vissza a fõmenübe.
A(z) n. függvény képe: addig lesz kirajzolva, amíg a felhasználó le nem nyomja az ENTER-gombot.
Függvényképek: A lehetséges függvényképeket a melléklet tartalmazza
Hibalehetõségek: Ha nincs meg a graph unit - és a felhasználó sem tudja négy (4) lehetõségbõl megmondani, hol van -, akkor a program (esetleg egy hibaüzenetet is kiírva) kilép.
Feladat: "Készíts kétváltozós függvényrajzló programot
pszeudoplasztikus módszerrel, 1 irányból megvilágítva a függvényt!"
Környezet: IBM PC, PC DOS 7.0 vagy avval kompatibilis operációs rendszer.
Turbo Pascal (legalább) 6.0 fejlesztõi környezet, Crt, Graph unit.
Használat: (a program indítása)
A program az "infa1be2.exe" néven található és a neve leírásával indítható.
Megoldás: (A program algoritmusa)
Program:
szovegesrõl_grafikusra; képernyõtörlés; fõmenü; képernyõtörlés; grafikusról_szövegesre;
Program vége
Eljárás Fõmenü {-a fõmenü eleje-}
kilep:=hamis;
Ciklus
Ki(fent, középre, aláhúzva, 'Kétváltozós függvény ábrázolása pszeudoplasztikus módszerrel');
Ki('Irta: Szamosközi Péter - 2000. december 10');
Ki(középre,'Menü');
Ki(középre,'1. A függvény kiválasztása'); Ki(középre, az_elõzõ_alá, '2. Kilépés');
Be(bill);
Elágazás bill esetén
'1': almenü; '2': kilép:=igaz;
Elágazás vége
C. amíg nem(kilép);
Eljárás vége. {-fõmenü vége-}
Almenü eljárás;
kilep2:=hamis;
Ciklus
Ciklus
képernyõtörlés; ki(középre, felül,'Válassza ki az ábrázolandó függvényt');
ki(középre,egymás alá: 'Függvény - almenü' - '1. fv - csobbanás' - '2. fv - hanghullámok'
'3. fv - fennsíkok' - '4. fv - mágneses hullámok (1/x)-el' - '5. fv - csikok' - '6. fv - hangyák');
ki(középre, alul,'Vissza a fõmenübe'); Be(bill);
C. amíg nem bill eleme ['0'..'9'];
ha bill=0 akkor kilep2:=igaz
különben almenü(bill);
C. amíg nem kilep2;
Eljárás vége; {-almenu vege-}
Eljárás rajz(állandó melyik:egész); {-A rajzolas eleje-}
képernyõtörlés; ki(középre,'A(z) '+melyik+'. függvény képe'); {díszítés aleljárás a forráskódban}
Ciklus i:=1-tõl n-ig
Ciklus j:=2-tõl m-ig
ha (fgv[i,j]>fgv[i,j-1]) akkor feny:=világos {innen jon a feny}
különben ha (fgv[i,j]<fgv[i,j-1]) akkor feny:=sötét {ez meg az arnyek}
különben feny:=átlagos; {ilyen szinuek lesznek az azonos magassagu pon-tõlk}
pontszinez(i+160,j+120,feny);
Ciklus vége;
Ciklus vége
ki(alulra, középre,'Vissza: ENTER'); bill-re_vár;
Eljárás vége; {-rajz vege-}
Eljárás feltölt (állandó melyik:egész);
Ciklus i:=1-tõl n-ig
Ciklus j:=1-tõl m-ig
ii:=-3+i*0.06; jj:=-3+j*0.06;
Elágazás melyik szerint
1: sv:=sin(ii*ii+jj*jj); 2: sv:=sin(ii*ii*ii-jj*jj*jj); 3: sv:=sin(ii-jj);
4: sv:=sin(ii*ii*ii*ii-jj*jj*jj*jj); 5: sv:=sin(sin(i+j)-cos(i+j)); 6: sv:=sin(random(i+j));
Elágazás vége
fgv[i,j]:=kerekít(sv); {a tipuskonverziok miatt}
Ciklus vége;
Ciklus vége;
rajz(melyik);
Eljárás vége; {-adatfeltõltes vege-}
Algoritmus vége
Fejlesztési lehetõségek:
További függvények ábrázoltatása, a felhasználói környezet barátságosabbá tétele.
Egyéb információ: A program az ELTE-TTK informatika tanári szak, második évfolyam, nappali tagozaton, az Informatika-alkalmazás módszertana (egykor: Informatikai rendszerek) tárgy elsõ félévének második beadandó feladatának megvalósítása.
Budapest, 2000. december 10.