Kezdőoldal » Számítástechnika » Programozás » Free Pascalban dolgozgatok....

Free Pascalban dolgozgatok. Ki lehetne ezt egészíteni valamivel? Két óra alatt csináltam, tehát még lehet rajta tökéletesíteni.

Figyelt kérdés

Program ghost_projekt;

uses crt;

var nev,jelszo:string;


begin

clrscr;

textcolor(lightgray);

writeln('ez egy titkositott dokumentum. megtekintesehez adja meg nevet es jelszavat.');

writeln;

writeln;

writeln;

writeln;

writeln(LOADING....');

writeln;

writeln;

write('neve:');

readln(nev);

if nev= 'ghost_projekt' then

textcolor(lightgreen);

if nev= 'ghost_projekt' then

write('O.K.');

if nev<> 'ghost_projekt' then

textcolor(lightred);

if nev<> 'ghost_projekt' then

write('a megadott nev hibas, a belepes ismetlesehez inditsa ujra a programot.');

textcolor(lightgray);

if nev='ghost_projekt' then

writeln;

if nev='ghost_projekt' then

writeln;

if nev='ghost_projekt' then

writeln;

if nev='ghost_projekt' then

writeln;

if nev='ghost_projekt' then

writeln('LOADING....');

writeln;

writeln;

if nev='ghost_projekt' then

begin

write('jelszo:');

readln(jelszo);

if jelszo='benxdestroyer' then

textcolor(lightgreen);

if jelszo='benxdestroyer' then

write('O.K.');

if jelszo<>'benxdestroyer' then

textcolor(lightred);

if jelszo<> 'bendestroyer' then

write('a megadott jelszo hibas, a belepes ismetlesehez inditsa ujra a programot.');

textcolor(magenta);

gotoxy(45,42);

writeln('Copyright 2014');

readkey;

clrscr;

textcolor(yellow);

gotoxy(35,2);

writeln('kilepeshez nyomja meg az entert....');

textcolor(magenta);

gotoxy(45,42);

writeln('Copyright 2014');

end;

readkey;

end.


2014. júl. 30. 19:56
 1/8 anonim ***** válasza:

Az if után írhatsz több sort, ha begin-end közé teszed.


Kiegészíteni sokféleképpen lehet. Például írjon ki valamit. Utánna, hogy a memóriában ne szerepeljen konkrétan a jelszó és az adat titkosítatlanul.

2014. júl. 30. 20:17
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:

Praktikusabb lenne a nevet és a jelszót legalább változóban tárolni. Én egy signolt fileban tárolnám hashelve. Még valami, a sok if-edet össze lehetne vonni. Pl ezt:

if jelszo='benxdestroyer' then

textcolor(lightgreen);

if jelszo='benxdestroyer' then

write('O.K.');

if jelszo<>'benxdestroyer' then

textcolor(lightred);

if jelszo<> 'bendestroyer' then

write('a megadott jelszo hibas, a belepes ismetlesehez inditsa ujra a programot.');


ezzé:

if jelszo='benxdestroyer' then begin

textcolor(lightgreen);

write('O.K.');

end else begin then

textcolor(lightred);

write('a megadott jelszo hibas, a belepes ismetlesehez inditsa ujra a programot.');

end

2014. júl. 30. 20:31
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
Előző vagyok, a begin után nincs then, otthagytam bocs.
2014. júl. 30. 20:31
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
100%

1. Tessék használni valamilyen forráskód-megosztó oldalt - áttekinthetőbbé teszi a kódot - például az általad mutatott kód (a 13. sorban hiányzott egy aposztróf, azt javítottam):

[link]


2. Pár optimalizációs javaslat:

- A sok Writeln ronda - használhatsz helyette a szöveg után rakott sortöréssel - például:

write('LOADING....',chr(10),chr(13),chr(10),chr(13));

- Használd az if () begin...end else begin...end; szerkezetet.

- Mielőtt visszaadnád a vezérlést a felhasználónak, állítsd vissza a konzolszínt.


Optimalizált változat:

[link]

2014. júl. 30. 20:50
Hasznos számodra ez a válasz?
 5/8 SimkoL ***** válasza:
100%

Tökéletesíteni mindig lehet :)

Előszöt is írjunk egy eljárást (procedure) ami a kiíratást végzi:

procedure Kiir(szoveg : string; szin, bgszin, sorem : byte);


const sor = #10#13;


var i: byte;


begin

TextColor(szin);

TextBackground(bgszin);

Write(szoveg);

for i := 1 to sorem do Write(sor);

end;


A paraméter nevek magukért beszélnek.


Utána írjunk egy függvényt ami az adatbekérést végzi:

function Beker(szoveg, helyes : string; szin, bgszin : byte) : boolean;


var adat : string;


begin

TextColor(szin);

TextBackground(bgszin);

Write(szoveg +': ');

ReadLn(adat);

Beker := adat = helyes;

end;


Itt lehet fejleszteni, hogy ne írja ki a karaktereket ezt már rád bízom, ha nem megy segítek.


Az eljárásunk és függvényünk segítségével átláthatóbb programot lehet írni.


Minta: [link]


Továbbiak: A Pascal karakteres 'üzemmódban' 80 x 25 -ös képernyőt kezel ezért a GotoXY-nál erre hagyatkozzál. Nem dob hibát, de értelmetlen dolog.

Bár a nyelv nem érzékeny a kis és nagybetűkre, de tessék megtanulni szép kódot írni. Átláthatóbb, értelmezhetőbb ha szépen használjuk a kis és nagybetűket. Ajánlom figyelmedbe a 6.0 -as Turbo Pascal magyar helpjét -oldalamról a programmal együtt letölthető : [link] - a Turbo.pif-et töröld futtatás előtt -

2014. júl. 31. 01:09
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
19%
Menekülj!!!!!! Menekülj attól a nyelvtől amíg tudsz!! :SSSSS
2014. júl. 31. 10:43
Hasznos számodra ez a válasz?
 7/8 ejbenjaro ***** válasza:
100%
#6 miért is meneküljön? Hagy döntse már el a kérdező, hogy mivel akar foglalkozni. Nem mellesleg azért, mert egy programnyelv épp nem "divatos", nem keresett a piacon, attól még nem biztos, hogy haszontalan is...
2014. júl. 31. 12:30
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:

Köszönöm mindenkinek a segítséget,megpróbálok minden tanácsot megfogadni. :)

#6 nem értem miért kellene menekülnöm? :D

már ezt szoktam meg. Nem zárkózok el a többi akár negezebb nyelvtöl de egyelöre ennél maradok.

2014. júl. 31. 14:29

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!