Jump to content
freeware

Pascalban Ceasar kódoló

Recommended Posts

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.

Share this post


Link to post
Share on other sites

Ezt én nem vágom :D , de ha elmonod segítek :D .

 

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

Share this post


Link to post
Share on other sites

Helló!

 

Hatalmas köszönet! :rolleyes: 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!

 

Share this post


Link to post
Share on other sites

;)

 

szerk:

:lol: 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 :D .

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Bejelentkezés

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×