Programování v praxi - 3.díl
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Programování v praxi - 3.dílProgramování v praxi - 3.díl

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

Programování v praxi - 3.díl

Google       Google       25. 3. 2007       17 513×

Dnes napíšeme funkci, která nám načte text, jenž uživatel zadal, a ten pak zašifruje. Následně jej uloží do souboru.

Reklama
Reklama

Dneska se tedy konečně dostáváme k jádru věci. Napíšeme si podprogram, který nám zašifruje text zadaný uživatelem a uloží ho do souboru text.txt.

Nadeklarujeme si proměnné, které budeme používat.

var vstupden:array [1..6000] of char;
    vystupden:array [1..6000] of integer;
    jmeno:text;
    A,B,K:integer;
  • vstupden – pole použité pro text, který uživatel zadá
  • vystupden – pole, do nějž se ukládají ordinální hodnoty znaků z pole vstupden
  • jmeno – ukazatel na soubor, do kterého se ukládá zašifrovaný text
  • A,B – do těchto proměnných se ukládá kód A, resp. kód B
  • K – tato proměnná slouží k volbě v menu z minulého dílu seriálu

Zde je kód:

procedure sifra;
              procedure soubor;
               begin
                assign(jmeno,"text.txt");
                append(jmeno);
                end;
              procedure kod;
               begin
                writeln("Zadejte sifrovaci kod A:");
                readln(A);
                writeln("Zadejte sifrovaci kod B:");
                readln(B);
               end;
              procedure nacteni;
               begin
                clrscr;
                I:=1;
                vstupden[1]:=readkey;
                write(vstupden[1]);
                while ord(vstupden[I])<>13 do
                begin
                I:=I+1;

                vstupden[I]:=readkey;
                if ord(vstupden[I])<>13 then
                write(vstupden[I]);

                end;
                writeln;
                writeln;
               end;
              procedure sifrovat;
               begin
                for J:=1 to I-1 do
                if J mod 2=0 then
                vystupden[J]:=ord(vstupden[J])+A
                else vystupden[J]:=ord(vstupden[J])+B;
                end;
                procedure ulozit;
                begin;
                soubor;
                for J:=1 to I-1 do

                write(jmeno,chr( vystupden[J]));
                writeln;
                close(jmeno);
                end;
              begin
               clrscr;
               kod;
               nacteni;
               sifrovat;
               ulozit;
              end;

Teď si výše vypsaný kód trochu vysvětlíme.

  • assign(jmeno,"text.txt") – Přiřadí proměnné jmeno soubor s názvem text.txt.
  • append(jmeno) – Otevře soubor ukrytý v proměnné jmeno tak, že na jeho konec bude možno připisovat text.
  • writeln("Zadejte sifrovaci kod A:") – Vypíše výzvu pro zadání kódu A.
  • readln(A) – Do proměnné A načte uživatelský vstup.
  • I:=1 – Do proměnné I uloží hodnotu 1.
  • vstupden[1]:=readkey – Tady je vidět další využití funkce readkey. Díky ní se na první pozici pole vstupden uloží znak, který čeká na vstupu.
  • write(vstupden[1]) – Ale protože se po načtení za použití funkce readkey znak nevypíše na obrazovku, musíme to udělat ručně pomocí tohoto příkazu.
  • while ord(vstupden[I])<>13 do – Toto je cyklus, který se ukončí po stisku klávesy Enter, a to proto, že ordinální hodnota Enteru je 13.
  • I:=I+1 – inkrementuje hodnotu proměnné I.
  • if ord(vstupden[I])<>13 then – Opět testuje, jestli nebyl stisknut Enter.
  • write(vstupden[I]) – Pokud nebyl stisknut Enter, vypíše znak na obrazovku.
  • for J:=1 to I-1 do – V proměnné I je uložen počet znaků v poli vstupden, ale i včetně znaku Enter, proto je tento cyklus jen do I-1.
  • if J mod 2=0 then – Pomocí příkazu mod, který vrací zbytek po celočíselném dělení, se určí, jestli jde o sudé nebo liché číslo.
  • vystupden[J]:=ord(vstupden[J])+ord(A) – Pokud je J sudé, tak se k ordinální hodnotě znaku uloženého v poli vstupden přičte hodnota kódu A a následně se uloží na příslušné místo v poli vystupden.
  • else vystupden[J]:=ord(vstupden[J])+B; – Pokud je J liché, tak se přičte kód B a zase uloží do pole vystupden.
  • write(jmeno,chr(vystupden[J])) – Každou ordinální hodnotu v poli vystupden převede zpět na znak (chr(vystupden[J])) a poté uloží do souboru text.txt.
  • close(jmeno) – Zavře soubor text.txt.
  • clrscr – Vymaže vše na obrazovce.
  • kod – Zavolá podprogram kod.
  • nacteni – Zavolá podprogram nacteni
  • sifrovat – Zavolá podprogram sifrovat
  • ulozit – Zavolá podprogram ulozit

Nyní ještě podprogram premazani, který nám smaže obsah souboru text.txt.

procedure premazani;
              begin
                   assign(jmeno,"text.txt");
                   rewrite(jmeno);
                   close(jmeno);
              end;
  • rewrite – Tato funkce smaže obsah souboru, respektive se jej pokusí vytvořit a pokud již existoval, smaže jeho obsah.

V příštím díle si napíšeme poslední podprogram – dešifrování textu. A v 5. článku složíme všechny podprogramy do jednoho celku a povím vám něco o našem příštím projektu.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor se věnuje programování v PACALU, vyvojovém prostředí Delphi, dále se zajímá o webdesing a tvorbu internetových stránek pomocí HTML, PHP a CSS.

Nové články

Obrázek ke článku SODAT vidí budoucnost datové bezpečnosti ve strojovém učení

SODAT vidí budoucnost datové bezpečnosti ve strojovém učení

Firmy chrání svá citlivá data často nedostatečně. Podle průzkumu společnosti SODAT se v minulém roce setkalo až 80 % z nich s bezpečnostním incidentem ztráty nebo úniku dat. Jedna z pilotních firem, která testovala novou verzi řešení SODAT Protection & Analytics 2.0pro bezpečností analýzu a monitoring dat díky novince zjistila, kdo z disku smazal důležité výkresy a mohla na incident včas reagovat.

Reklama
Reklama
Obrázek ke článku Kontrolujete pracovní emaily i na dovolené? 7 tipů odborníka, jak nepřijít o data

Kontrolujete pracovní emaily i na dovolené? 7 tipů odborníka, jak nepřijít o data

Letní měsíce jsou pro většinu zaměstnanců spojené s každoroční dovolenou. Z údajů Českého statistického úřadu vyplývá, že v roce 2017 podnikli Češi přes 13 milionů delších cest (tzn. s více než čtyřmi noclehy). Přitom právě na období července, srpna a září připadá více než 7,5 milionů z nich. Nicméně tradiční představu o dovolené jako o čase, kdy má práci na starost někdo jiný, Češi boří. 

Obrázek ke článku 10 SEO mýtů, které už nemusíte v roce 2018 řešit

10 SEO mýtů, které už nemusíte v roce 2018 řešit

„Kolik má být na stránce klíčových slov?“, „Nemáš vyplněný meta tag keywords, to nebude fungovat.“, „Katalogy jsou mrtvý“. Také jste už slyšeli některé z těchto otázek? Pojďme si na ně konečně jednou provždy odpovědět.

Obrázek ke článku Trend Micro pomohlo usvědčit viníky v mezinárodním případu Scan4You

Trend Micro pomohlo usvědčit viníky v mezinárodním případu Scan4You

Společnost Trend Micro Incorporated, globální lídr v oblasti kybernetické bezpečnosti, oznámila podrobnosti o své úzké spolupráci s FBI v případu Scan4You. Trend Micro se podílelo na identifikaci osob, které byly spojeny se službou Scan4You Counter Antivirus, což vedlo k jejich odsouzení.

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