Začíname s pascalom- jednoduchší algoritmus?

Programovacie jazyky, rady, poradňa...
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa BX »

S-Player ty sa teda predvádzaš s tým šifrovaním. Peknú kopu sprostostí si sem popísal a Mr-Freek-a si akurát pekne doplietol (a nesprávne). Prišiel som to teda napraviť :oops:
Chybu robíš už v predpoklade, že kódovanie a šifrovanie môžeš nejakým spôsobom vôbec porovnať a "oddeliť". Sú to dve úplne neporovnateľné veci a neexistuje žiadna hranica, medzi kódovaním a šifrovaním, znovu - lebo sú to dve absolútne odlišné veci.

Ak chcem informáciu prispôsobiť nejakému (prenosovému) kanálu (el. napätie, dym na oblohe, svetlo, alebo čokoľvek iné) tak ide o kódovanie.

Ak chcem nejakú informáciu transformovať do utajenej podoby tak, aby ju neznalý človek nebol schopný prečítať v pôvodnom znení, ide o šifrovanie.

Ak chcem informáciu v pôvodnom znení len ukryť, tak ide o steganografiu.


Vyzerá to tak, že pojmu "šifrovanie" vôbec nerozumieš, pretože podľa tvojej logiky by sa prelomením DES stal DES kódovaním - čo je absolútna, gigantická, až gargantuózna blbosť.
Takže raz a navždy, ak má človek urobiť "šifrovací" program, tak informáciu šifruje (nech akokoľvek jednoducho). Ak dostane za úlohu urobiť program na zaistenie prenosu informácie, tak informáciu kóduje.

Pardon, že som vám to tu narušil, len toľkoto som chcel.
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa S-player »

Nemyslím si ,že si úplne pochopil to čo som sa snažil vysvetliť. Viem veľmi dobre aký je rozdiel medzi šifrovaním a kódovaním, nebude sa tu však k tomu už viac vyjadrovať. Ak sa vás bude na budúce niekto pýtať ako ma šifrovať hesla tak mu kľudne poraďte ASCII. Neprelomiteľný šifrovací algoritmus.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa harrison314 »

S-player napísal:Nemyslím si ,že si úplne pochopil to čo som sa snažil vysvetliť. Viem veľmi dobre aký je rozdiel medzi šifrovaním a kódovaním, nebude sa tu však k tomu už viac vyjadrovať. Ak sa vás bude na budúce niekto pýtať ako ma šifrovať hesla tak mu kľudne poraďte ASCII. Neprelomiteľný šifrovací algoritmus.
Takze, este raz, kodovanim sa snazis zaistit aby infurmaciu dokazali precitat vsteci, sifrovanim to aby precitali len spravny ludia, a to nehovori nic o realizacii alebo poziadkach na sifrovanie/kodovanie.
V istych pripadoch mozes stacit ASCII kodovanie ako sifra, ide len o to aby cena sifrovania bola nizsia ako cena informacii, ktore ma chranit. Problem je aj to, ze ziadna sifra nie je neprelomitelna.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa BX »

Nemyslím si, že si úplne pochopil zadanie, vytvorené pre začiatočníka v programovaní. To neznelo "vytvorte šifrovací algoritmus, ktorý bude dosahovať väčšej bezpečnosti než AES".
S-player napísal:1. Pracuješ na kódovaní nie šifrovaní.
Jednoznačne si autorovi napísal, že nešifruje, ale kóduje. To je nesprávne. A ešte si si to tu obhajoval, takže znovu, ak nevieš rozdiel medzi šifrovaním a kódovaním, vráť sa do školy.
Ak by som aj šifroval zobrazením znakov do ich ASCII hodnoty, prinajhoršom by išlo o veľmi zlú šifru. O nič viac.
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa S-player »

Veľmi dobre rozumiem načo všetci narážate a OK nazvime tento výsledny string "šifrou". Nikto ,ale nezmení fakt ,že ten proces je vlastne len zameňovanie charov stanovenými kódmi - kódovanie a nie posraté šifrovanie.
BX napísal:Jednoznačne si autorovi napísal, že nešifruje, ale kóduje. To je nesprávne. A ešte si si to tu obhajoval, takže znovu, ak nevieš rozdiel medzi šifrovaním a kódovaním, vráť sa do školy.
Ak by som aj šifroval zobrazením znakov do ich ASCII hodnoty, prinajhoršom by išlo o veľmi zlú šifru. O nič viac.
... áno pretože naňom aj pracuje. Jeho úlohou bolo rozchodiť nejaký algoritmus viz. Cézarova šifra.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa BX »

Stále nás tu presviedčaš o tom, že nevieš rozdiel medzi kódovaním a šifrovaním :D
Aj keby som znaky zamieňal za zvieratká, tebe to môže byť úplne jedno. To, že ty vieš o nejakej ASCII tabulke, nič neznamená. To, že zverejníš postup dešifrovania akurát znamená, že šifra je prelomená. Ale stále je to šifra. Hotovo.

Tá tvoje caesarova šifra je tiež len zamieňanie znakov podľa tabulky. O nič lepšie, ako zamieňanie znakov za čísla podľa ASCII tabulky. Tebe robí problém pochopiť to, že ASCII tabulka je verejná. To je smola, čo už, dosť na prt šifra. Keď si urobí vlastnú tabulku písmeno->číslo, budeš spokojný?

//A uvádzať výcuc z wikipedie ako zdroj, to fakt nemusíš :D
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa S-player »

BX napísal:Stále nás tu presviedčaš o tom, že nevieš rozdiel medzi kódovaním a šifrovaním :D
Aj keby som znaky zamieňal za zvieratká, tebe to môže byť úplne jedno. To, že ty vieš o nejakej ASCII tabulke, nič neznamená. To, že zverejníš postup dešifrovania akurát znamená, že šifra je prelomená. Ale stále je to šifra. Hotovo.
Áno, áno samozrejme.
...Kódovanie je proces, pri ktorom sa každému znaku alebo postupnosti znakov daného súboru znakov (vzorov) jednoznačne priradí znak alebo postupnosť znakov (obrazov) z iného súboru znakov.
BX napísal:Tá tvoje caesarova šifra je tiež len zamieňanie znakov podľa tabulky. O nič lepšie, ako zamieňanie znakov za čísla podľa ASCII tabulky. Tebe robí problém pochopiť to, že ASCII tabulka je verejná. To je smola, čo už, dosť na prt šifra. Keď si urobí vlastnú tabulku písmeno->číslo, budeš spokojný?
Čo som ja komu spravil... Ak by si dostal string zašifrovaný "Cézarova šifrou" tak na jeho rozšifrovanie by si potreboval algoritmus pr. "...každé písmeno správy posunuté o n pozícií ďalej v abecede...". Ak máš ,ale niečo zakódovane tz. (príklad) "a" = 10, "B" = 100 tak k tomu budeš potrebovať tabuľku kódov aby si to rozkódoval.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa harrison314 »

...Kódovanie je proces, pri ktorom sa každému znaku alebo postupnosti znakov daného súboru znakov (vzorov) jednoznačne priradí znak alebo postupnosť znakov (obrazov) z iného súboru znakov.
:D
...Substitučné šifrovanie je proces, pri ktorom sa každému znaku alebo postupnosti znakov daného súboru znakov (vzorov) jednoznačne priradí znak alebo postupnosť znakov (obrazov) z iného súboru znakov.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa BX »

Ach ty tabulka... Čo som ja komu spravil :D
Tu máš tabulku, našiel som narýchlo len Vigenerovu, ale to je jedno.
vigerene_table.jpg
Nájdem si v červenom stĺpci písmeno a posuniem sa o tri políčka doprava. Hotovo, how simple is that.

//herrison, presne toto som chcel urobiť najprv, ale potom som radšej vytiahol tabulku :D
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa S-player »

BX napísal:Ach ty tabulka... Čo som ja komu spravil :D
Tu máš tabulku, našiel som narýchlo len Vigenerovu, ale to je jedno.
vigerene_table.jpg
Nájdem si v červenom stĺpci písmeno a posuniem sa o tri políčka doprava. Hotovo, how simple is that.
Môžem si vygenerovať dvojstĺpcovú tabulku pre caesarovu šifru, podľa ktorej si každé písmeno jednoducho preložím. Tak wtf, stále nič? :mrgreen:

//herrison, presne toto som chcel urobiť najprv, ale potom som radšej vytiahol tabulku :D
Ak by si mal napísať program ,ktorý šifruje/dešifruje správu tak by si v ňom použil túto tabuľku áno? Neriešil by si to za pomoci algoritmu čo? V prípade ascii (príklad) nemáš na výber. Musíš použiť nejaký "codebook" ,s ktorým danú správu rozkóduješ.

*Tabuľka vyššie neobsahuje žiadne kódy.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa BX »

A to je definícia šifry? Že musím použiť pracný algoritmus v programe a nie tabulku? To je teda novinka :D (a vieme vôbec, čo je to algoritmus?) Keby toto čítali starí Rimania, tí by boli smutní... oni si naivne mysleli, že šifrujú a hľa :(

No ale dobre teda, poďme na iný príklad. Kódovanie čísel so znamienkom :) Aditívny kód. Tam nie je žiadny "codebook". A obhajuj, som zvedavý :)
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa S-player »

BX napísal:A to je definícia šifry? Že musím použiť pracný algoritmus v programe a nie tabulku? To je teda novinka :D
Môžeš použiť aj tabuľku... no v prípade ASCII, morzeovky asi nemáš na výber alebo áno?
BX napísal:A to je definícia šifry?
Určite tomu neuveríš ,ale predstav si ,že áno. Jeden zo zdrojov kde si o tom môžeš niečo prečítať: https://www.khanacademy.org/computing/c ... s-vs-codes
BX napísal: (a vieme vôbec, čo je to algoritmus?)
Nemusíš to skrývať... alebo sa bojíš "nahlas" opýtať?

Toto je mojim posledným komentárom v téme. Nebudem sa k tomu už viac vyjadrovať. Pokiaľ si myslíte ,že ide o šifrovanie - šifru tak OK, whatever.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa BX »

S-player napísal:Pokiaľ si myslíte ,že ide o šifrovanie - šifru tak OK, whatever.
Áno myslíme, pretože ide o šifru. Šifra je všetko, čo nazvem šifrou a ty, ani nikto s tým nič nespraví :) (A možno aj tento text bol šifrovaný ...možno :| )
Mr-Freek
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 469
Registrovaný: 14 júl 2014, 13:23

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa Mr-Freek »

Nerád narúšam konverzáciu o šifra/kód ale chcem postnúť dnešný programík, zadanie bolo uložiť súradnice kliknutí užívateľa do pola a následne ich pospájať. Ja som sa s tým troška pohral a zakomponoval časovač aby sa to kreslilo postupne :) budem rád za každú či už väčšiu alebo menšiu pripomienku. Zatiaľ ovládam len jednorozmerné pole a preto som deklaroval pre každú súradnicu samostatné.
Spoiler

Kód: Vybrať všetko

var
  Form1: TForm1;
  I,J:integer;
  xx:array [1..100] of Integer;                 //glob. premenné
  yy:array [1..100] of Integer;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Inc(I,1);
  XX[I]:=x;                                                                             //klik.
  YY[I]:=y;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with image1.canvas do begin
    pen.width:=random(10)+5;                                                         //kreslenie
    pen.color:=random(256*256*256);
    image1.canvas.line(XX[J],YY[J],XX[J+1],YY[J+1]);
  end;
  Inc(J,1);
  if J>=I then timer1.enabled:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  J:=1;
  I:=0;
  with image1.canvas do begin
    brush.color:=clWhite;
    fillrect(image1.clientrect);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   timer1.enabled:=true;
end;          
//autoeditácia príspevku (24 Aug 2014, 23:26)
a ešte jeden dnešný výtvor, algoritmus na pomiešanie čísel od 0 do 9, asi nie najefektívnejšie riešenie keďže som použil 2 polia ale myslím si že celkom kreatívne.. postujem to hlavne aby som zistil či je to veľmi zlý algoritmus alebo len zlý :)

Kód: Vybrať všetko

for J:=1 to 10 do begin
    B:=random(11-J);
    cisla[J]:=pomoc[B];
    pomoc[B]:=pomoc[11-J];
    image1.canvas.textout(20*J,20,IntToStr(cisla[J]));
  end;
za predpokladu že "cisla" je 10 prvkové prazdne pole a "pomoc" je 10 prvkové pole zaplnené od 0 po 9, B je ordinálna premenná.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa audiotrack »

choďte už niekam s tým kodovaním a šifrovaním. Založte si tému ak to chcete riešiť. Pre túto tému to nemá žiaden prínos...
Fabo napísal:mrhanie pamatou? Ako nehovorim ze to je idealne, ale ja tam nejake mrhanie v tom snippete nevidim...
napríklad v tom, že key bude maximálne 4 ciferné číslo lebo predstavuje rok. Takže neviem prečo tam pcháš 4bytový int keď stačí short, a tiež neviem prečo ho nedáš unsigned keď záporný rok byť nemôže. Ak bude v jeho programe s takouto štruktúrou x záznamov, má to x*2 byty vyhodené do koša. Taktiež nechápem aký má zmysel používať na dvojhodnotový typ štruktúru a následne to hodiť do poľa. Ak to dá do poľa ako jednu hodnotu a druhú využije ako index (tak ako to robil) tak znova ušetrí 2 alebo 4 B na každý záznam.

Mr-Freek:
myšlienka toho miešania je zaujímava, ale nedotiahol si ju do konca. Dalo sa to upraviť tak, aby si mal iba jedno pole

k tomu spájaniu čiar asi len toľko, že I sa väčšinou používa pre riadiace premenné cyklov. AK je to počítadlo, skôr by som jej dal N. Alebo ešte lepšie niečo viacvravné ako jedno písmenko. Taktiež nechápem tomu pokazenému shiftu. Doteraz som si myslel, že delphi je case-sensitive. Ale deklarované máš xx a yy no vo funkcii máš potom XX a YY. Do funkcie idú ako parameter zase veľké X a Y ale používaš malé.
A ten timer sa ti podľa mňa nevypne nikdy. Zastane to len preto, že sa dosiahli cielové súradnice ale na pozadí ti stále beži loop toho timeru.
Mr-Freek
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 469
Registrovaný: 14 júl 2014, 13:23

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa Mr-Freek »

S tým miešaním som rozmýšlal aj ja ale nenapadalo ma riešenie čo sa týka odobratia toho prvého.. jedine že by som ho nahradil iným dátovým typom. Možno neskôr to budem vedieť prerobiť. K tej premennej ďakujem za dotaz zapamätám si to aby to bolo prehladnejšie :) a program fungoval bezproblémovo aj v rozdiele XX/xx ale nabudúce dodržím uper/lower case podla toho ako som deklaroval. Pre test som tam šupol ďalšiu premennú a image1.canvas.textout(N*20,20,'a'); a vypísalo 'a' len tolko krát ako malo a nie donekonečna.. prečo by sa nemal ten timer zastavit?

//autoeditácia príspevku (25 Aug 2014, 11:11)
Chystám sa objednať túto knižku pre dopĺňanie teoretických informácií čo sa informatiky týka http://www.martinus.sk/?uItem=44171. Má s ňou niekto zlú/dobrú skúsenosť prípadne vie odporúčiť lepšiu? Jediný problém čo som sa dočítal je slabo vysvetlené programovanie ale neviem čo si tá daná osoba myslela že natlačia na pár strán materiály z ktorých sa človek naučí programovať? :D
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa harrison314 »

Mr-Freek napísal:Chystám sa objednať túto knižku pre dopĺňanie teoretických informácií čo sa informatiky týka http://www.martinus.sk/?uItem=44171. Má s ňou niekto zlú/dobrú skúsenosť prípadne vie odporúčiť lepšiu? Jediný problém čo som sa dočítal je slabo vysvetlené programovanie ale neviem čo si tá daná osoba myslela že natlačia na pár strán materiály z ktorých sa človek naučí programovať?
Danu knihu nemam, ale brat mal z tej edicie chemiu, a tam to bolo dost dobre vysvtelene.
No najdes aj nejake knihy zadarmo, nic za to nedas, napriklad odporucam Wirth - Algoritmy a štruktúry údajov, daj to do googla a hned prvy link. Ja som cast z nej cital az na vyske, ale nemal by si to mat problem pochopit, navyse pan Wirth je tvorca Pascalu.
Mr-Freek
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 469
Registrovaný: 14 júl 2014, 13:23

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa Mr-Freek »

Díky za odporúčanie určite si ju prečítam :) ale ževraj táto edícia okrem biológie je napísaná dobre tak tých pár eur olutujem.

//autoeditácia príspevku (28 Aug 2014, 21:39)
Tak dnes som sa po menšej prestávke kvôli návšteve mojej milovanej slečny zase pustil do "roboty" a zbúchal program ktorý obsahuje procedúru s dvoma parametrami: celočíselnou premennou X a polom. Procedúra rozoberie číslo X na cifry a následne vypíše vo vetách na štýl "Číslo 969 obsahuje 9 jednotiek, číslo 969 obsahuje 6 desiatok...."

Kód: Vybrať všetko

for I:=1 to length(edit1.text) do image1.canvas.textout(20,I*15,'V čísle '+ edit1.text +' sa nachádza '+' '+IntToStr(pole[I])+rad[I]);
za predpokladu že "edit1.text" je číslo a "pole" obsahuje už jednotlivé cifry. Moja otázka sa obracia na pole "rad" ktoré som si vymyslel sám kvôli zlepšeniu viet, v programe mi ale vznikla takáto obluda a s mojim skillom nemám ani páru ako sa jej zbaviť. Je to jednoduchou cestou možné alebo som si proste vymyslel príliš veľkú hlúposť? ďakujem za pomoc

Kód: Vybrať všetko

rad[1]:='jednotiek';
 rad[2]:='desiatok';
 rad[3]:='stoviek';
 rad[4]:='tisícok';
 rad[5]:='desať-tisícok';
 rad[6]:='sto-tisícok';   
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa Fabo »

Mne sa to riesenie celkom paci.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Začíname s pascalom- jednoduchší algoritmus?

Príspevok od používateľa audiotrack »

všetko to máš v množnom čísle, takže ak tam bude niekde jednotka alebo dvojka, bude ti to hádzať šialenú slovenčinu ako "1 stoviek", "2 jednotiek" a podobne. Radšej by som to riešil funkciou rad(pole,I) kde by si si deklaroval lokálne pole bez prípon:

Kód: Vybrať všetko

rad[1]:='jednot';
rad[2]:='desiat';
rad[3]:='stov';
rad[4]:='tisíc';
rad[5]:='desať-tisíc';
rad[6]:='sto-tisíc';   
a podľa parametra I vieš ktorú hodnotu vypísať, a podľa pole vieš doplniť príponu -iek, -ok, -ku, -ky a neviem aké ešte

a inak všimol som si, že všetky texty vždy vypisuješ do canvasu. Máš na to nejaký dôvod? Prečo nepoužívaš label? Som zvedavý ako by si to riešil, keby ten text potrebuješ prepísať alebo načítať a ďalej s ním robiť po vypísaní. Nehovoriac o tom, že sa nedá zkopírovať užívateľovi, že vykreslovanie do canvasu ťa núti narábať s pozíciami, že to dlhšie trva, že sa ti neprispôsobi dlžke textu...
Napísať odpoveď