Výčtové typy - jak se jim dostat pod kůži? – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výčtové typy - jak se jim dostat pod kůži? – Delphi – Fórum – Programujte.comVýčtové typy - jak se jim dostat pod kůži? – Delphi – Fórum – Programujte.com

 

Huge0
Návštěvník
1. 10. 2006   #1
-
0
-

D?lal sem do ?koly takovej ?kol, jde o to na??st v?tu (string) a o kolik p?smen v abeced? se to m? posunout a vypsat tu v?tu s t?m ?e ka?d? p?smeno bude posunut? o tolik
p?smen v abeced?, kolik bylo zad?no. Pr? to je n?jak? Caesarova ?ifra.
Probl?m je ale s posouv?n?m Z, p??padn? A, kdy? to je dozadu. Vy?e?il sem to pomoc? if else, ale to se mi moc nel?bilo, tak sem se tu d?val a na?el sem vlastn? ordin?ln? datov? typy.
Ale na co vlastn? takovej v??tovej typ je, kdy? ho nem??u ani readnout ani vypsat?? Udelal sem si takovej typ abeceda(a,b,c,d.....z); ale nem??u mu ani p?edat p?smeno ze strigu - pismeno:=s[i] .
Tak jak se to d? vůbec vyu??t??

Nahlásit jako SPAM
IP: ...–
Huge0
Návštěvník
4. 10. 2006   #2
-
0
-

Jo, tak sem přišel na to, že asi bude lepší použít interval...jenže ten taky nefachá jak má :(( Nadefinuju PismenVAbecede= 65..90; a když pak nastavim proměnnou na 90 a přičtu 1, vypíše mi to 91 :(( Takže je to úplně na h....

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
4. 10. 2006   #3
-
0
-

Huge napsal:

Jo, tak sem p?i?el na to, ?e asi bude lep?? pou??t interval...jen?e ten taky nefach? jak m? :(( Nadefinuju PismenVAbecede= 65..90; a kdy? pak nastavim prom?nnou na 90 a p?i?tu 1, vyp??e mi to 91 :(( Tak?e je to ?pln? na h....


A nestocilo by Ti pouzit uplne jednoduse pole:


THugeSettings = array ['A'..'Z'] of byte;

Pricemz by jednotlive polozky byly indexovatelne pres pole['A'] := 5 a hned by jsi vedel ,o kolik ktere pismenko mas posunout. Jinak me jeste zajima to zadani. Konkretne, co se ma stat, kdyz je nejake posunti delsi, nez je delka retezce. Ma se rotovat, nebo se pismeno jednoduse vynecha(nebude se s nim manipulovat)??

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
4. 10. 2006   #4
-
0
-

heh, tak jsem se kouknul, co to vlastne Caesarova sifra je a musim rict, ze je celkem trivilani. Ovsem pokud jsem to pochopil. Cerpal jsem z http://cs.wikipedia.org/wiki/Caesarova_?ifra. Takze kod by potom mohl vypadat, takhle:



function CaesarCode(const Str: String; pos: integer): String;
var temp: string;
j, len: integer;
c : char;
begin
len := Length(Str);
Assert(len > 0);
SetLength(temp, len);
for j:=1 to len do
begin
c := char(ord(Str[j])+pos);
if (c > 'Z') then c := char(ord('A')+(ord(c) - ord('Z'))-1);
if (c < 'A') then c := char(ord('Z')-(ord('A')-ord(c))-1);
temp[j] := c;
end;
Result:=temp;
end;


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var HugeArray: THugeArray;
c: char;
begin
ShowMessage(CaesarCode('CAESAR', 3));
end;


Jen jeste poznamka, predtim nez to poslel funkci CaesarCode, tak retezec musi byt prevedená na velke pismena, nebo si tam dodel podminku na c > 'z'.

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý