freeware Posted Március 31, 2009 Share Posted Március 31, 2009 Sziasztok! A következő programozás házit kell elkészítenem: Egy valami.TXT nevű állományból beolvas egy titkosított, az angol ábécé betűit tartalmazó szöveget, és a képernyőre kiírja a megfejtett szöveget! A valami.TXT fájl első sora az A-nak megfelelő betű, a titkosított szöveg a második sortól kezdődik, esetleg több sorra tördelve is akár. Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Március 31, 2009 Share Posted Március 31, 2009 Ezt én nem vágom , de ha elmonod segítek . szerk: Megvan, eltolásos cucc, nem nehéz de most rohanok a vonathoz XD, ha netközelbe kerülök (legkésőbb csütörtök akkor elküldöm). csoki szerk2: tessék: Program Decoder; uses crt; {'a' ascii kodja : 97} var MyWord:string;{-kodolando szoveg} KeyChar:char;{-kodolo karakter} i:byte;{-segedvaltozo} Shift:byte;{-eltolas} {kisbetusites} Function LowerCase(Act_C:char):char; const different = 32;{a<->A} Begin if (ord(Act_C) >= ord('A')) and (ord(Act_C) <= ord('Z')) then Begin LowerCase := chr(ord(Act_C) + different); End else LowerCase := Act_C; End; Function GetShift(Act_C:char):byte; var abc :string; i:byte; Begin abc := 'abcdefghijklmnopqrstuvwxyz'; i := 0; while (abc[i+1] <> Act_C) do inc(i); GetShift := i; End; {szovegkodolas} Function Decode(MyWord:string; Shift:byte):string; var i:byte; s:string; Begin s := ''; for i := 1 to length(MyWord) do Begin if (ord(MyWord) >= ord('a')) and (ord(MyWord) <= ord('z')) then Begin s := s + chr(((ord(MyWord) - 96) mod 26) + (96 + shift)); {(ord(MyWord) - 96) mod 26):hanyadik betu az 'abc'-ben (mod 26) -tŁlcsordul s kezel?se} {(96 + shift) hozz adjuk az 'a' elotti poziciot ?s azt mennyivel toljuk el} End else s := s + MyWord;{hozzaadjuk a szoveghez az adott karaktert modositas nelkul ha az nincs benne az 'abc'-ben} End; Decode := s; End; BEGIN clrscr; {kodolando szoveg beolvasasa} write('Text for decode: '); readln(MyWord); {kodolo betu} Write('Key: '); KeyChar := readkey; Writeln(KeyChar); {karaktere feldolgozasa (lowcase)} for i := 1 to length(MyWord) do Begin MyWord := LowerCase(MyWord); End; {^EZ NEM FELTETLEN SZUKSEGES, DE HA NEM TESSZUK BELE AKKOR A DEOCDE RESZBEN MEG KELL VIZSGALNI HOGY KIS VAGY NAGY BETUROL BESZELUNK^} {kodolt szoveg kiiratasa} write(Decode(MyWord,GetShift(KeyChar))); readkey; END. //a txt beolvasását gondolom te is meg tudod oldani Idézés Link to comment Share on other sites More sharing options...
freeware Posted Április 1, 2009 Author Share Posted Április 1, 2009 Helló! Hatalmas köszönet! Egy teherrel kevesebb! Az a gond, hogy követelni követelnek, de normálisan nem adják le az anyagot. Jó tudom, gyakorolni kell, de arra meg nem sok ideje van az embernek munka mellett. Szóval mégegyszer ezer hála! Idézés Link to comment Share on other sites More sharing options...
SixHouse Posted Április 2, 2009 Share Posted Április 2, 2009 szerk: még ezzel agészítsd ki: KeyChar := LowerCase(KeyChar); ezen már ne bukj el nehogy a tesztelő nagy betűt toljon be ezt elfelejtettem . Idézés Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.