Mam zasifrovat text posunutim o x znaku-->A=Z B=A.... pomozte jak
Mam zasifrovat text posunutim o x znaku-->A=Z B=A.... pomozte jak
MSI VR601X
tomuhle se rika Caesarova sifra. hodim ti to tu v packalu bo delfy po ruce nemamkazdopadne myslenka je stejna
rotX ovlada posun (o kolik).Kód:program CSifra; var a:string[255]; i,rotX:integer; begin a:='Peta'; writeln(a); rotX:=3; for i:=1 to Length(a) do begin case a[i] of 'A': a[i]:=chr(ord('Z')-(rotX mod 26)+1); 'B'..'Z': a[i]:=chr( ( (ord(a[i])-rotX-ord('A')) mod 26) + ord('A') ); 'a': a[i]:=chr(ord('z')-(rotX mod 26)+1); 'b'..'z': a[i]:=chr( ( (ord(a[i])-rotX-ord('a')) mod 26) + ord('a') ); { else : .... tady si dodelaj co chces delat se znaky mimo abecedu} end; end; writeln(a); end.
zhruba by to melo ficet![]()
A) Prejmenuj si thread podle pravidel
B) To je tak jednoduchy, ze se vubec ptas.
Nevim syntax, ale algoritmus ti napsat muzu.
Mas promenou text="blabol", pocitam, ze k tomu jde pristupovat jako k poli znaku ukoncenymu null takze text[0]=b atd. Mno, takze to pekne vemes, hodis do smycky nako takhle:
Je to jen tak zbastleny v "zadnym" jazyce, ale tohle snad v delfi napsat zvladnes ne ?Kód:x=0 while text[x++] not null do if text [x-1] = [b..z] then text[x-1]= ddd(chr(text[x-1])-1) //ddd fce cislo > char, si nepamaruju, jak se menuje :) fi if text[x-1] = "a" then text [x-1] ="z" if text[x-1] <> [a..z] then echo "si nedelej prdel" done
Edit: Koukam, sem pomalej a vypada to, ze tu mas i rovnou Copy&Paste priklad
Edit2: 2Jedik - no fuj, delat to pres CASE.
zadny C&P. sem to poctive ted zbastlil. gpc rulezzPůvodně odeslal Jezevec
// mod1
jak fuj? imho lepci 1 case nez 10 ifuminimalne prehlednejsi.
Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)