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

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

 

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

Google       Google       25. 3. 2007       17 056×

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 První český hackathon ve vlaku inspirovaly služby jako  Tinder, Airbnb nebo Uber

První český hackathon ve vlaku inspirovaly služby jako Tinder, Airbnb nebo Uber

Patnáct set kilometrů, cesta přes dva státy, šestnáct hodin programování a přísun energy drinků, tak by se dal shrnout unikátní hackathon ve vlaku pořádaný Kiwi.com. Z Prahy do Košic a zpět se svezlo celkem 13 týmů, každý s originálním nápadem. Hlavní výhru, voucher na letenky v hodnotě 2 500 EUR, si v Praze převzal tým až z Ukrajiny.

Reklama
Reklama
Obrázek ke článku Gamifikace nakupování dorazila i do České republiky

Gamifikace nakupování dorazila i do České republiky

Zákazníci zejména retailových společností jsou často znuděni klasickými věrnostními či motivačními programy. Většinou z toho důvodu, že jsou jeden jako druhý a nepřináší nic nového. Ale i v České republice se projevují zahraniční trendy, nedávno zde totiž vstoupila na trh a rychle se uchytila nová platforma kombinující to nejlepší z věrnostních a motivačních programů, která navíc využívá prvky gamifikace – Rondo.cz. Na hlavní milníky vývoje nálad a motivace zákazníků a nejnovější trendy se zaměřil Jan Hřebabecký, spoluzakladatel Rondo.cz

Obrázek ke článku NopCommerce – datová vrstva a přístup k datům – 2. díl

NopCommerce – datová vrstva a přístup k datům – 2. díl

V minulém článku jsme si představili platformu NopCommerce z globálního pohledu. V dnešním díle se již zaměříme na konkrétní část systému, a to datovou vrstvu. Představíme si základní stavební kameny systému v podobě doménových objektů. Ukážeme si, jakým způsobem rozšířit doménové objekty a jakým způsobem přistupuje NopCommerce k nastavení systému a modulů.

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