Programování Pavel Kras : Progamování v MS Office

Transkript

Programování Pavel Kras : Progamování v MS Office
Programování
Toto je nabídka programová ze www.slunecnice.cz. www.linuxsoft.cz
Visual Basic – ( VBA ) Microsoft , návaznost na makra MS Office
Python – moderní programovací jazyk
PHP - pro WWW databáze
Pascal . starý
Karel pro děti
JavaScript -html
Java – multiplatformní, pro mobily i PC
Delphi – firmy Borland
C a C++ - všichni středoškoláci v USA se z něj něco učí
Pavel Kras : Progamování v MS Office

Objektově orientované programování- využívá připravené objekty, u kterých využíváme
jejich vlastností. Jenom některé předvolené vlastnosti se přestaví ( předefinují), jiné
necháme předvolené. Objekty reagují na určité události automaticky, takže startují
proceduru, která je na jejich objekt a vlastnost vázána. To vede ke zrychlení a práce
programátora se rozpadá na velký počet krátkých sekvencí, které je možno opakovaně
využívat.
 Strukturované programování –
o Přístup shora dolů – zadání je na vrcholu pyramidy a program se rozrůstá dolů a
do šíře. Lze pak objevit, kde nastala chyba
o Modularizace – modul je logicky rozčleněná pokud možno nezávislá část. To
umožňuje snáze rozlišit chyby a umožňuje spolupráci v týmech. Mnohé moduly lze
užít i při jiných obdobných úkolech.
o Stavebnicovou- programy jsou sestaveny z modulů, využíváme použitá a
odzkoušená řešení. Program se lepí z jednotlivých částí.
Zdroje : Wikipedia nebo http://k-prog.wz.cz/
Programovací jazyky jsou nástroje pro tvorbu programů.
Základem programovacího jazyka je jednoduchý textový soubor ( neformátovaný ASCII
soubor –v angličtině). V souboru je zapsán algoritmus programu.
Algoritmus (nebo dřívějším pravopisem algorithmus) je přesný návod či postup, kterým
lze vyřešit daný typ úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy
se jím myslí teoretický princip řešení problému (oproti přesnému zápisu v konkrétním
programovacím jazyce). Obecně se ale algoritmus může objevit v jakémkoli jiném
vědeckém odvětví. Jako jistý druh algoritmu se může chápat i např. kuchyňský recept. V
užším smyslu se slovem algoritmus rozumí pouze takové postupy, které splňují některé
silnější požadavky: Vlastnosti algoritmů
Konečnost
Každý algoritmus musí skončit v konečném počtu kroků. Tento počet kroků může být
libovolně velký (podle rozsahu a hodnot vstupních údajů), ale pro každý jednotlivý vstup
musí být konečný.
Determinovanost
Každý krok algoritmu musí být jednoznačně a přesně definován; v každé situaci musí být
naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat. Protože
běžný jazyk obvykle neposkytuje naprostou přesnost a jednoznačnost vyjadřování, byly pro
zápis algoritmů navrženy programovací jazyky, ve kterých má každý příkaz jasně
definovaný význam. Vyjádření výpočetní metody v programovacím jazyce se nazývá
program.
Vstup
Algoritmus obvykle pracuje s nějakými vstupy, veličinami, které jsou mu předány před
započetím jeho provádění, nebo v průběhu jeho činnosti. Vstupy mají definované množiny
hodnot, jichž mohou nabývat.
Výstup
Algoritmus má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným
vstupům, a tím tvoří odpověď na problém, který algoritmus řeší. (Algoritmus vede od
zpracování hodnot k výstupu - resultativnost)
Efektivita
Obecně požadujeme, aby algoritmus byl efektivní, v tom smyslu, že požadujeme, aby každá
operace požadovaná algoritmem, byla dostatečně jednoduchá na to, aby mohla být alespoň
v principu provedena v konečném čase pouze s použitím tužky a papíru. (tj. byla
elementární)
Obecnost (hromadnost)
Algoritmus neřeší jeden konkrétní problém (např. „jak spočítat 3×7“), ale obecnou třídu
obdobných problémů (např. „jak spočítat součin dvou celých čísel“).
V praxi jsou proto předmětem zájmu hlavně takové algoritmy, které jsou v nějakém smyslu
kvalitní. Takové algoritmy splňují různá kritéria, měřená např. počtem kroků potřebných pro běh
algoritmu, nebo jednoduchost či elegance algoritmu. Problematikou efektivity algoritmů, tzn.
metodami, jak z několika známých algoritmů řešících konkrétní problém vybrat ten nejlepší, se
zabývají odvětví informatiky nazývané algoritmická analýza a teorie složitosti.V praxi je třeba
zajistit, aby algoritmus skončil „v rozumném“ čase. Za rozumný čas lze v praxi považovat takový
čas, který nám umožní smysluplně využít výsledek.
Textový soubor vytvořený programátorem je předán programu – kompilátoru nebo
interpreteru.
Interpreter – textový soubor je čten řádku po řádce- je to pomalé a používá se
jen u starších jazyků ( LISP, starší BASIC)
Kompilátor –zdrojový text je načten do paměti počítače, pak hromadně
kompilován- vznikne spustitelný soubor .exe. Používá se všech moderních
jazyků ( Pascal, Delphi, C, C++ /je objektově orientovaný/, Visual Basic /
objektově orientovaný/)
Lineární programování (dříve lineární optimalizace) je odvětví optimalizace. Řeší problém
nalezení minima (resp. maxima) lineární funkce n proměnných na množině, popsané soustavou
lineárních nerovností.
Strukturované programování nebo také strukturovaný programovací jazyk označuje
programovací techniku, kdy se implementovaný algoritmus rozděluje na dílčí úlohy, které se
spojují v jeden celek. K implementaci v programu se používá vybraných řídících struktur, ostatní
struktury nejsou povoleny - u strukturovaného programování se např. nepoužívá řídící příkaz
skoku.
Speciální programy se mohou tvořit přímo ve strojovém kódu, stále se ještě používá program
Assembler- je rychlý, ale náročný na tvorbu.
Objektově orientované programování – jde o metodiku řešení celého problému, organizace
paměti – Pascal, Visual Basic, C++.
Objektově orientované programování (zkracováno na OOP, z anglického Object-oriented
programming) je metodika vývoje softwaru, založená na následujících myšlenkách, koncepci:
Objekty – jednotlivé prvky modelované reality (jak data, tak související funkčnost) jsou v
programu seskupeny do entit, nazývaných objekty. Objekty si pamatují svůj stav a
navenek poskytují operace (přístupné jako metody pro volání).
Abstrakce – programátor, potažmo program, který vytváří, může abstrahovat od některých
detailů práce jednotlivých objektů. Každý objekt pracuje jako černá skříňka, která dokáže
provádět určené činnosti a komunikovat s okolím, aniž by vyžadovala znalost způsobu,
kterým vnitřně pracuje.
potažmo
1.
se vztahem, se zřetelem, vzhledem k někomu, něčemu

Ušetřil co nejvíc energie a potažmo i peněz.
2.
vlastně, respektive

Podmínky pro prosperitu jeho podniku vytváří stát, potažmo obec .
Zapouzdření – zaručuje, že objekt nemůže přímo přistupovat k „vnitřnostem“ jiných
objektů, což by mohlo vést k nekonzistenci. Každý objekt navenek zpřístupňuje
rozhraní, pomocí kterého (a nijak jinak) se s objektem pracuje.
Skládání – Objekt může využívat služeb jiných objektů tak, že je požádá o provedení
operace.
Dědičnost – objekty jsou organizovány stromovým způsobem, kdy objekty nějakého
druhu mohou dědit z jiného druhu objektů, čímž přebírají jejich schopnosti, ke kterým
pouze přidávají svoje vlastní rozšíření. Tato myšlenka se obvykle implementuje pomocí
rozdělení objektů do tříd, přičemž každý objekt je instancí nějaké třídy. Každá třída pak
může dědit od jiné třídy (v některých programovacích jazycích i z několika jiných tříd).
Polymorfismus – odkazovaný objekt se chová podle toho, jaký je jeho skutečný typ. Pokud
několik objektů poskytuje stejné rozhraní, pracuje se s nimi stejným způsobem, ale jejich
konkrétní chování se liší. V praxi se tato vlastnost projevuje např. tak, že na místo, kde je
očekávána instance nějaké třídy, můžeme dosadit i instanci libovolné její podtřídy
(třídy, která přímo či nepřímo z této třídy dědí), která se může chovat jinak, než by se
chovala instance rodičovské třídy, ovšem v rámci mantinelů, daných popisem rozhraní.
Některé z těchto vlastností jsou pro OOP unikátní, jiné (např. abstrakce) jsou běžnou vlastností i
jiných vývojových metodik. OOP je někdy označováno jako programátorské paradigma, neboť
popisuje nejen způsob vývoje a zápisu programu, ale i způsob, jakým návrhář programu o
problému přemýšlí. Paradigma ve vědě Podle široce přijímané koncepce je paradigma souhrn základních
domněnek, předpokladů, představ dané skupiny vědců
Algoritmus obecný návod jak postupovat, posloupnost příkazů a instrukcí, které popisují činnost –
akci. Je to přesně definovaná posloupnost pravidel, jejichž realizace nám umožní vstupní data po
konečném počtu kroků, získat výstupní data.
Příkaz je popis toho, co se má provést
Proces- je postupné vykonávání (vlastní činnosti) akce a postupné provádění příkazů
procesorem.
Prosesor je to, co uskutečňuje daný proces. Podle jednoho návodu (algoritmu) může
proběhnout několik různých procesů. To zajišťují podmíněné příkazy.
Proměnná – to je objekt, který má pevně stanované označení, má určitou hodnotu a může
se v průběhu procesu měnit.
Zápisy algoritmů
Slovní zápis
Zápis v programovacím jazyce
Grafické zobrazení algoritmu
o Vývojové diagramy – používají se (normované) grafické symboly
Instrukce pro vstup a výstup
Podmínka (větvení)
Vstup
Příkazy ( úkony)
Mezní značka
Činnost definovaná jinde ( podprogram) Přípravná činnost
o Strukturogramy – podobně jako symboly, ale je to přesnější a vhodné pro
strukturované programování
Prostá posloupnost příkazů
Mateřská škola
Větvení programu
ANO
NE
Máš
čas?
Základní škola
Škoda
Jdeme na
kafe
Střední škola
Vysoká škola
2.
Cyklus
ANO
NE
Máš
hlad?
Dej si rohlík
Procedury a funkce
Procedury a funkce tvoří posloupnosti instrukcí, které potřebujeme v programu provádět na
různých souborech dat nebo na různých místech programu. Procedura nebo funkce může být po
deklaraci použita kdekoli v následujícím textu bloku programu.
Funkce vrací hodnotu a může se použít přímo ve výrazech.
Procedura se vyvolá příkazem volání procedury ke splnění jedné nebo více operací.
Procedury a funkce umožňují vnořovat přídavné bloky do hlavního programového bloku. Každá
deklarace procedury nebo funkce má hlavičku, po které následuje blok příkazů. Procedura se
aktivuje příkazem volání procedury, funkce se aktivuje vyhodnocením výrazu, který obsahuje její
volání. Za identifikátorem procedury nebo funkce může následovat seznam parametrů, uzavřený v
kulatých závorkách. Každý parametr v seznamu má své místo, kterému odpovídá příslušný typ.
Zdrojový text programu je ukončen tělem hlavního programu. Tělo hlavního programu se musí
uvést vždy jako poslední. Mezi část deklarace proměnných a tělo hlavního programu lze vložit
libovolné množství deklarací procedur a funkcí v jakémkoli pořadí. Musí se však dodržovat
zásada, že cokoli použijeme, musí být deklarováno, jinak dojde k chybě během překladu.
Tělo deklarace procedury nebo funkce končí středníkem místo tečky u hlavního programu.
Procedura nebo funkce může mít své vlastní interní datové typy, proměnné i své vlastní procedury
a funkce. Veškeré prvky deklarované uvnitř procedury nebo funkce mají lokální charakter, tzn. lze
je využít pouze uvnitř procedury nebo funkce, ve které jsou deklarovány. Deklarace, které jsou
uvedeny v hlavním programu, mají globální charakter.
Deklarace procedury
procedure <jméno procedury> (formální parametry);
label <deklarace návěští>;
const <deklarace konstant>;
type <definice typů>;
var <deklarace proměnných>;
procedure; function;
<deklarace procedur a funckí>;
begin
<tělo procedury>;
end;
{hlavička procedury}
{deklarační část}
{příkazová část}
Deklarační část procedury se řídí stejnými pravidly jako hlavní program. Deklarace procedury
přiřadí identifikátor k bloku kódu programu. Při vyvolání procedury se provedou příkazy, které
jsou uvedeny v těle procedury. Pokud se v těle procedury vyskytne identifikátor vyvolané
procedury, provádí se procedura rekurzivně.
Deklarace funkcí
Deklarace funkcí mají podobnou strukturu jako deklarace procedury, s tím rozdílem, že začínají
hlavičkou funkce a končí datovým typem, který funkce vrací:
function <jméno funkce> (formální parametry):datový typ;
Funkce se aktivuje uvedením identifikátoru funkce při vyhodnocení výrazu, funkce se objeví jako
operand výrazu. Když se výraz vyhodnotí, funkce se provede a hodnota operandu se stane
hodnotou, kterou funkce vrací. V těle funkce jsou podobně jako u procedury definovány příkazy,
které se mají provést po aktivaci funkce. Tělo funkce musí obsahovat příkaz přiřazení, který
přiřazuje identifikátoru funkce hodnotu. Výsledkem funkce je pak poslední přiřazená hodnota.
Pokud v těle funkce příkaz přiřazení neexistuje, funkce vrací nedefinovanou hodnotu.
Parametry procedur a funkcí
V hlavičce deklarace procedury nebo funkce můžeme definovat seznam formálních parametrů.
Každý parametr deklarovaný v seznamu je lokální v deklarované proceduře nebo funkci. Uvnitř
bloku procedury nebo funkce je možné se na něj odvolávat jeho identifikátorem. Typy parametrů:
Formální - ty se objevují v deklaraci procedury nebo funkce, jsou dvojího druhu:
parametry volané odkazem (proměnné)
parametry volané hodnotou (hodnotové)
Skutečné - jsou to parametry, které se uvádějí při volání procedury nebo funkce. Musí odpovídat
svým datovým typem parametrům, definovaným v podprogramu a jejich počet musí být stejný s
počtem, který jsme v podprogramu definovali.
Hodnotové parametry se v deklaraci uvádějí svým identifikátorem, následovaným definicí typu.
Parametry, které mají stejný charakter a typ, se mohou uvádět v seznamu, oddělené čárkou. Pokud
jsou v deklaraci procedury nebo funkce parametry různých typů a charakterů, jednotlivé typy se
musí oddělit středníkem. Formální hodnotové parametry působí jako lokální proměnná v proceduře
nebo funkci, s tím rozdílem, že dostávají počáteční hodnotu při aktivaci procedury nebo funkce.
Změna formálního hodnotového parametru v těle procedury nebo funkce neovlivní hodnotu
skutečného parametru při aktivaci procedury nebo funkce. Skutečný parametr, který odpovídá
hodnotovému parametru v příkazu procedury nebo volání funkce, musí být výraz a jeho hodnota
nesmí být typu soubor ani strukturovaný typ, který obsahuje typ soubor. Skutečný parametr musí
být kompatibilní s formálním parametrem.
Proměnný parametr se používá tam, kde se musí předat hodnota z procedury nebo funkce zpět
volající proceduře nebo funkci. Odpovídající skutečný parametr v příkazu procedury nebo volání
funkce musí být odkazem na proměnnou. Formální proměnný parametr reprezentuje v průběhu
aktivace procedury nebo funkce skutečnou proměnnou. Jakákoli změna hodnoty proměnného
formálního parametru se promítne na skutečný parametr volající procedury. Typ skutečného
parametru musí být identický s typem formálního proměnného parametru. Jako proměnné
parametry lze předávat typ soubor.
procedure vstup(X,Y:integer); {procedura s formálními hodnotovými parametry}
procedure vstup(var X,Y:integer); {procedura s formálními proměnnými parametry}
Příklad volání funkce
Volání funkce se objeví na pravé straně přiřazovacího příkazu. Její volání se může umísti přímo v
příkazu výstpu dat.
Deklarace: function test (X,Y:word; T:boolean):word;
Volání: a:=test (10,15,true);
Proměnná "a" musí být typu word (nebo proměnná s tímto typem kompatibilní).
Standardní funkce: SQR, SQRT, ABS...
Příklad volání procedury
Při volání procedury uvedeme její identifikátor a parametry. Do příkazu výstupu dat se procedura
nedává.
Deklarace procedury s hodnotovými parametry:
procedure test (X,Y:word; T:boolean); {formální parametry}
Volání: test (10,15,true); {skutečné parametry}
test (A,B,C); {skutečné parametry}
Proměnné A,B musí být typu word (nebo s tímto typem kompatibilní) a C typu boolean.
Procedura neovlivní hodnoty A,B a C
Deklarace procedury s proměnnými parametry:
procedure test (var X,Y:word; T:boolean); {formální parametry}
Volání: test (A,B,C); {skutečné parametry}
Proměnné A,B musí být typu word (nebo s tímto typem kompatibilní) a C typu boolean.
Procedura ovlivní hodnoty A,B a C.
Při volání procedury s proměnnými parametry musí být skutečným parametrem proměnná.
Standardní procedury: WRITE, WRITELN, READ, READLN, CLRSCR...
Způsoby rozdělení úlohy na podlohy
Konjunktivní – zpracování všech úloh sekvenčně za sebou
Disjunktivní – řešení v závislosti na podmínkách a na základě dané podmínky se řeší jedna
vybraná úloha
Repetiční – několikanásobné zopakování stejného cyklu
Postup algoritmizace při řešení složitějších úloh
Zadání a formulace úlohy
Analýza problému a nástin řešení
Analýza vstupních a výstupních dat – návrh datových struktur v programu (pole..)
Návrh algoritmu
Zápis v programovacím jazyce a ladění programu (program, který má chybu se sám zastaví
a nedá výsledek)
Zkušební provoz + tvorba dokumentace
Zhodnocení řešení a možnosti aplikací na obdobné problémy.
Význam některých pojmů v programování – záleží ale na druhu jazyka
Char – znaky podle ASCII tabulky
True – pravda
False – nepravda
String- řetězec textový
Array – pole (má např. pevně stanovený počet prvků určitého typu)
Record – záznam, typ záznamu pevně definované položky různých typů
Set – obecně nastavení, jindy typ množina (max. 256 prvků)
Object – typ objekt má pevně stanovený počet položek
File – soubor
CheckBox – zaškrtávací políčko
RadioGroup – skupina zaškrtávacích koleček, vybírá se (ve formulářích) jedna možnost
Label – textový popis, popiska, jmenovka
Edit – vkládání textu
Button – tlačítko, akce začíná stiskem buttonu
Memo – poznámka
ScrollBar – rolovací lišta
Begin – začátek programu nebo části
End – konec programu nebo části ( pak třeba End if)
Řídící struktury ( zde programu JavaScript)
Podmínka if
Syntaxe podmínky je následující:
if (podmínka)
{ příkazy }
else
{ příkazy }
Podmínka switch
Syntaxe podmínky je následující:
switch (výraz) {
case konst_výraz1 : příkaz
case konst_výraz2 : příkaz
...
default : příkaz
}
Cyklus for
Syntaxe cyklu je následující:
for (inicializace; podmínka; posun)
{ příkazy }
Cyklus while
Syntaxe cyklu je následující:
while (výraz)
{ příkazy }
Objekty (JavaSriptu)
string = řetězec
metoda
anchor(name)
big()
blink()
bold()
charAt(n)
charCodeAt(n)
concat(hodnota, ...)
fixed()
fontcolor()
fontsize()
indexOf(podřetězec, start)
italics()
lastIndexOf(podřetězec, start)
link(href)
match(regexp)
replaceregexp(nahrazení)
search(regexp)
slice(start, konec)
small()
strike()
sub()
substring(od, do)
substr(start, délka)
sup()
toLowerCase()
toUpperCase()
vysvětlení
Vrací <a name=" "> </a>
Vrací <big> </big>
Vrací <blink> </blink>
Vrací <b> </b>
Vrací n-tý znak řetězce
Vrací kód znaku na n-tém místě řetězce
Spojuje řetězce
Vrací <tt> </tt>
Vrací <font color=" "> </font>
Vrací <font size=" "> </font>
Prohledává řetězec
Vrací <i> </i>
Prohledává řetězec odzadu
<a href=" " > </a>
Hledá jednu nebo více shod s regul. výr.
Nahradí podřetězec odpovídající regul. výr.
Hledá regulární výraz
Vyjme podřetězec
Vrací <small> </small>
Vrací <strike> </strike>
Vrací <sub> </sub>
Vrací podřetězec řetězce
Vrací podřetězec
Vrací <sup> </sup>
Konvertuje řetězec na malá písmena
Konvertuje řetězec na velká písmena
Cvičení:
<html>
<head> <title>Druhý JavaScript</title> </head>
<body>
<script language="JavaScript">
<!-veta=window.prompt("Napiš větu malými písmeny");
document.write(veta.toUpperCase());
// -->
</script>
</body> </html>
Objekt Math
vysvětlení
metoda
Math.E
Math.LN10
Math.LN2
Math.LOG10E
Math.LOG2E
Math.PI
Math.SQRT1_2
Math.SQRT2
Math.abs(x)
Math.acos(x)
Math.asin(x)
Math.atan(x)
Math.atan2(x, y)
Math.ceil(x)
Math.cos(x)
Math.exp(x)
Math.floor(x)
Math.log(x)
Math.max(a, b)
Math.min(a, b)
Math.pow(x, y)
Math.random()
Math.round(x)
Math.sin(x)
Math.sqrt(x)
Math.tan(x)
Eulerovo číslo
Hodnota ln 10
Hodnota ln 2
Hodnota log e
Hodnota log2e
Ludolfovo číslo
Převrácená hodnota odmocniny ze dvou
Odmocnina ze dvou
Absolutní hodnota
Arcuskosinus
Arcussinus
Arcustangens
Počítá úhel mezi osou X a bodem
Zaokrouhlí číslo
Kosinus
Počítá ex
Zaokrouhlí číslo dolů
Počítá přirozený logaritmus
Vrací větší ze dvou čísel
Vrací menší ze dvou čísel
Vrací hodnotu xy
Vrací pseudonáhodné číslo
Zaokrouhlí na nejbližší celé číslo
Sinus
Druhá odmocnina
Tangens
Cvičení:
<html>
<head> <title>Třetí JavaScript</title> </head>
<body>
<script language="JavaScript">
<!-cislo=window.prompt("Zadej celé kladné číslo:");
document.write('&radic;'+cislo+' = '+
Math.sqrt(cislo));
// -->
</script>
</body> </html>
Objekt Date
metoda
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimeZoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
getYear()
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
setYear()
toLocaleString()
toString()
vysvětlení
Vrací číslo aktuálního dne v měsíci
Vrací číslo aktuálního dne v týdnu
(0=neděle, ..., 6=sobota)
Vrací rok (lokální čas)
Vrací počet hodin od půlnoci
Vrací počet milisekund (lokální čas)
Vrací údaj o minutách
Vrací měsíc
(0=leden, ..., 11=prosinec)
Vrací sekundy
Vrací datum a čas v milisekundách
Vrací posun proti GMT
Vrací den v měsíci (UTC)
Vrací den v týdnu (UTC)
Vrací rok (UTC)
Vrací hodiny (UTC)
Vrací milisekundy (UTC)
Vrací minuty (UTC)
Vrací měsíc (UTC)
Vrací sekundy (UTC)
Vrací rok (překonáno funkcí getFullYear())
Nastaví den v měsíci
Nastaví rok (lokální čas)
Nastaví hodiny
Nastaví milisekundy (lokální čas)
Nastaví minuty (0 - 59)
Nastaví měsíc
Nastaví sekundy
Nastaví celý časový údaj v milisekundách
Nastaví den v měsíci (UTC)
Nastaví rok (UTC)
Nastaví hodiny (UTC)
Nastaví milisekundy (UTC)
Nastaví minuty (UTC)
Nastaví měsíc (UTC)
Nastaví sekundy (UTC)
Nastaví rok (překonáno funkcí setFullYear())
Konvertuje údaj na řetězec v UTC
Konvertuje údaj na řetězec
metoda
toUTCString()
valueOf()
vysvětlení
Konvertuje údaj na řetězec v UTC
Konvertuje údaj na číslo
UTC = Universal Time Coordinated
Cvičení:
<html>
<head> <title>Čtvrtý JavaScript</title> </head>
<body>
<script language="JavaScript">
<!-var datum=new Date();
var mesic=datum.getMonth();
mesic++;
if (datum.getDay() == 0) {
document.write("Dnes je neděle ")}
if (datum.getDay() == 1) {
document.write("Dnes je pondělí ")}
if (datum.getDay() == 2) {
document.write("Dnes je úterý ")}
if (datum.getDay() == 3) {
document.write("Dnes je středa ")}
if (datum.getDay() == 4) {
document.write("Dnes je čtvrtek ")}
if (datum.getDay() == 5) {
document.write("Dnes je pátek ")}
if (datum.getDay() == 6) {
document.write("Dnes je sobota ")}
document.write(datum.getDate()+"."+mesic+".");
// -->
</script>
</body> </html>
Příkaz if v PHP
Příkaz if umožňuje provádět vybrané části kódu pouze pokud nastanou dané podmínky.
Konstrukce příkazu if je následující:
<?php
if (podmínka)
{ příkazy pro splněnou podmínku }
else
{ příkazy pro nesplněnou podmínku }
?>
Větev else není povinná, proto se nemusí za určitých okolností uvádět. Jednotlivé příkazy ve
větvích se píší do složených závorek a oddělují se středníkem. Daný blok bude vykonán na základě
podmínky - pokud podmínka je splněna (hodnota pravda), provede se první větev, pokud
podmínka splněna není (výsledek je nepravda), provede se větev else, pokud je uvedena. Více v
následující ukázce:
<?php
$jmeno="Martin";
if ($jmeno == "Martin")
{ echo ("Ahoj Martine"); }
else
{ echo ("Ahoj, tebe ještě neznám"); }
?>
Předchozí příklad zjišťuje, zda v proměnné $jmeno je řetězec Martin. Pokud je podmínka
splněna, server předá prohlížeči řetězec Ahoj Martine. Pokud ovšem podmínka splněna není,
provede se větev else a server předá řetězec Ahoj, tebe ještě neznám.
PHP ještě nabízí vytvoření podpodmínky. Syntaxe je pak následující:
<?php
if (podmínka)
{ příkazy pro splněnou podmínku }
elseif (podpodmínka)
{ příkazy pro splněnou podpodmínku }
else
{ příkazy pro nesplněnou podpodmínku }
?>
Více snad napoví následující ukázka, v níž se pokusíme zjistit, zda číslo je kladné, záporné nebo
nulové:
<?php
$cislo=-2;
if ($cislo > 0)
{ echo ("Číslo je kladné"); }
elseif ($cislo == 0)
{ echo ("Číslo je nula"); }
else
{ echo ("Číslo je záporné"); }
?>
Příkaz switch v PHP
Příkaz switch zjednodušuje testování u složitějších podmínek, kde bychom opakovaně testovali
nějakou podmínku. Opět se tedy podíváme na ukázku, kde budeme zjišťovat, zda v proměnné
$rocni_obdobi je řetězec jaro, leto, podzim nebo zima. Nejprve si ukážeme, jak by vypadala
podmínka pomocí příkazu if a poté ji zjednodušíme pomocí switch.
<?php
$rocni_obdobi="podzim";
if ($rocni_obdobi == "jaro")
{ echo ("Jaro"); }
elseif ($rocni_obdobi == "leto")
{ echo ("Léto"); }
elseif ($rocni_obdobi == "podzim")
{ echo ("Podzim"); }
else
{ echo ("Zima"); }
?>
<?php
$rocni_obdobi="podzim";
switch ($rocni_obdobi)
{
case "jaro" : echo ("Jaro"); break;
case "leto" : echo ("Léto"); break;
case "podzim" : echo ("Podzim"); break;
default : echo ("Zima");
}
?>
Zkuste tuto ukázku modifikovat tak, aby detekovala špatné zadání ročního období.
Cyklus while v PHP
Tento druh cyklu vyhodnocuje logický výraz. Pokud je tento výraz pravdivý, provede kód uvnitř
složených závorek, pokud není, obsah závorek je přeskočen. Podmínka se testuje vždy na začátku
každého průchodu cyklem. Provádění cyklu lze přerušit v kódu pomocí příkazu break.
<?php
$i=1;
while ($i < 5)
{
echo ($i);
$i++;
}
?>
Předcházející ukázka provádí triviální cyklus, který se opakuje do té doby, dokud není splněna
zadaná podmínka. V tabulce je zaznamenáno, co se v cyklu provádí a jak dlouho cyklus poběží:
průběh cyklem
1.
2.
3.
4.
hodnota $i na začátku cyklu
1
2
3
4
co se zobrazí
1
2
3
4
hodnota $i na konci cyklu
2
3
4
5
Pokud je zapotřebí testovat podmínku až na konci cyklu, používá se modifikovaný cyklus while,
tentokrát ve tvaru do ... while (viz ukázka).
<?php
$i=1;
do {
echo ($i);
$i++;
}
while ($i < 5);
?>
Tabulka pro tuto ukázku je stejná jako v předchozí ukázce. Jaký je tedy rozdíl mezi těmito dvěma
zápisy? V prvním případě (cyklus while) nemusí být podmínka před prvním průchodem splněna,
kód uvnitř složených závorek se tedy neprovede. U druhého případu (cyklus do ... while) nejprve
kód provede a potom jej teprve testuje, tzn. že cyklus se provede vždy alespoň jednou!
Cyklus for v PHP
Syntaxe těchto cyklů je následující:
<?php
for (inicializace; podmínka; posun)
{ příkazy }
?>
První výraz cyklu for je tzv. inicializace - jako hodnotu tedy nastavujeme na počátku. Hodnota
tohoto výrazu se nastaví pouze jednou, a to před prvním průchodem cyklu. Druhý výraz je
podmínka, která se vyhodnocuje před každým průchodem cyklem. Pokud je tento výraz
vyhodnocen (na základě řídící proměnné) jako pravda, provede se tělo cyklu, v opačném případě se
cyklus ukončí. Třetí výraz se provádí vždy na konci každého průchodu cyklem, používá se obvykle
pro inkrementaci či dekrementaci řídící proměnné, která byla na začátku cyklu inicializována.
<?php
for ($i=1; $i < 5; $i++)
{
echo ($i * $i);
}
?>
Ukázka provádí výpočet druhé mocniny čísla od 1 do 4, viz následující tabulka:
průběh
cyklem
1.
2.
3.
4.
hodnota $i na začátku
cyklu
1
2
3
4
co se zobrazí po provedení $i
* $i
1
4
9
16
hodnota $i na konci
cyklu
2
3
4
5
Programovací jazyk
Z Wikipedie, otevřené encyklopedie http://cs.wikipedia.org/wiki/Programovac%C3%AD_jazyk
Programovací jazyk je prostředek pro zápis algoritmů, jež mohou být provedeny na počítači.
Zápis algoritmu ve zvoleném programovacím jazyce se nazývá program.
Programovací jazyk je komunikačním nástrojem mezi programátorem, který v programovacím
jazyce formuluje postup řešení daného problému, a počítačem, který program interpretuje
technickými prostředky. Programovací jazyk je vlastně soubor pravidel pro zápis algoritmu,
odborně řečeno se jedná o formální jazyk.
Programovací jazyky existují v řadě verzí a implementací, mluvíme někdy o dialektech
programovacího jazyka. Existují také standardy pro programovací jazyky, pro jednotlivé
implementace se často uvádí, kterému standardu vyhovuje.
Typy programovacích jazyků
Existuje několik možností kritérií, podle kterých jazyky dělit.
Dle míry abstrakce:
vyšší programovací jazyky (většina jazyků)
nižší programovací jazyky (např. Assembler, částečně VHDL)
Dle způsobu překladu a spuštění:
kompilované programovací jazyky (např. Pascal, C)
interpretované programovací jazyky (např. BASIC, Perl, Python, shell)
o interpretované jazyky, které se pouze interpretují (z toho důvodu jsou pomalejší proto většina jazyků má alespoň nějakou jinou možnost, pokud nejsou stejně
zpomalované něčím jiným, jako třeba shell)
o interpretované jazyky, které se překládají, ale pouze do mezikódu, nikoli do
strojového kódu počítače (např. Java, Python)
o interpretované jazyky, které se po spuštění za běhu programu překládají do
strojového kódu počítače (např. Java, pokud se použije systém JIT)
Toto členění není absolutní, řada programovacích jazyků existuje v implementaci jak
interpretované, tak kompilované (například zmíněná Java). Navíc jsou oba postupy někdy
kombinovány, zdrojový kód je nejprve kompilován do mezikódu, který je poté interpretován.
Vyšší programovací jazyky se dále dělí takto:
Procedurální (imperativní)
o Strukturované algoritmus rozděluje na dílčí úlohy (t.j. procedury či funkce), které se
spojují v jeden celek). (např. C, BASIC)
o Objektově orientované (např. Smalltalk, Java)
Neprocedurální = Deklarativní programování je založeno na myšlence programování
aplikací pomocí definic co se má udělat a ne jak se to má udělat. (deskriptivní)
o Funkcionální (např. Lisp, Haskell)
o Logické (např. Prolog, Goedel)
Některé programovací jazyky (např. C++, Python, Object Pascal, Flex) umožňují programátorovi
kombinovat různé přístupy. Část řešení může být například vyjádřena zápisem funkcí a procedur
(strukturované programování), část řešení může využívat čistě objektový přístup. Klasickým
příkladem jazyka, ve kterém se mezi těmito přístupy nedělá ostrá hranice, je jazyk C++. Podobný
pragmatický přístup využívá jazyk Python, který navíc do určité míry podporuje i funkcionální
programování. Jako protiklad k nim uveďme velmi rozšířený jazyk Java, kde se i jednoduchá
funkce musí vyjádřit formou metody třídy.
Některé programovací jazyky byly vytvořeny především pro výuku programování a algoritmického
myšlení. Mezi takové jazyky patří například Logo, Karel, Baltík, Petr. (Ostatně prvotním důvodem
vzniku jazyka Pascal byla také výuka programovaní.)
Některé programovací jazyky
Úplnější seznam - viz Seznam programovacích jazyků
Programovací jazyky
ABAP | Ada | AWK | Assembler | C | C++ | C# | COBOL | ColdFusion | Clean | D | Eiffel | Erlang |
Flex | Fortran | JADE | Java | JavaScript | Lisp | Lua | Oberon | Object Pascal | Objective-C | Pascal |
Perl | PHP | Python | REALbasic | REBOL | RPG | Ruby | SQL / PL/SQL | Tcl / Tcl/Tk | Visual Basic /
VBScript | VB.NET | Visual FoxPro
Akademické: APL / J | Baltazar | Baltík | Karel | OCaml |
Haskell | Scheme | Smalltalk | Logo | MATLAB |
Mathematica | ML | Prolog
Ostatní: ALGOL | BASIC | Clipper | Forth | Goedel | Limbo |
Miranda | Modula-2 / Modula-3 | MUMPS | PL/1 | Simula 67
| Whitespace
SQL (někdy vyslovováno anglicky es-kjů-el [ɛ s kjʊ ːɛ ɫ ] IPA, někdy též síkvl
[siːkwəl] IPA) je standardizovaný dotazovací jazyk používaný pro práci s daty v relačních
databázích. SQL je zkratka anglických slov Structured Query Language (strukturovaný
dotazovací jazyk).
Algoritmus
(nebo dřívějším pravopisem algorithmus) je přesný návod či postup, kterým lze vyřešit daný typ
úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický
princip řešení problému (oproti přesnému zápisu v konkrétním programovacím jazyce). Obecně se
ale algoritmus může objevit v jakémkoli jiném vědeckém odvětví. Jako jistý druh algoritmu se
může chápat i např. kuchyňský recept. V užším smyslu se slovem algoritmus rozumí pouze takové
postupy, které splňují některé silnější požadavky:
Obsah
[skrýt]
1 Vlastnosti algoritmů
2 Algoritmická složitost
3 Druhy algoritmů
4 Seznam algoritmů
5 Etymologie
6 Reference
[ Vlastnosti algoritmů
Konečnost
Každý algoritmus musí skončit v konečném počtu kroků. Tento počet kroků může být
libovolně velký (podle rozsahu a hodnot vstupních údajů), ale pro každý jednotlivý vstup
musí být konečný. Postupy, které tuto podmínku nesplňují, se mohou nazývat výpočetní
metody. Speciálním příkladem nekonečné výpočetní metody je reaktivní proces, který
průběžně reaguje s okolním prostředím. Někteří autoři však mezi algoritmy zahrnují i
takovéto postupy.
Determinovanost
Každý krok algoritmu musí být jednoznačně a přesně definován; v každé situaci musí být
naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat. Protože
běžný jazyk obvykle neposkytuje naprostou přesnost a jednoznačnost vyjadřování, byly pro
zápis algoritmů navrženy programovací jazyky, ve kterých má každý příkaz jasně
definovaný význam. Vyjádření výpočetní metody v programovacím jazyce se nazývá
program.
Vstup
Algoritmus obvykle pracuje s nějakými vstupy, veličinami, které jsou mu předány před
započetím jeho provádění, nebo v průběhu jeho činnosti. Vstupy mají definované množiny
hodnot, jichž mohou nabývat.
Výstup
Algoritmus má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným
vstupům, a tím tvoří odpověď na problém, který algoritmus řeší. (Algoritmus vede od
zpracování hodnot k výstupu - resultativnost)
Efektivita
Obecně požadujeme, aby algoritmus byl efektivní, v tom smyslu, že požadujeme, aby každá
operace požadovaná algoritmem, byla dostatečně jednoduchá na to, aby mohla být alespoň
v principu provedena v konečném čase pouze s použitím tužky a papíru. (tj. byla
elementární)
Obecnost (hromadnost)
Algoritmus neřeší jeden konkrétní problém (např. „jak spočítat 3×7“), ale obecnou třídu
obdobných problémů (např. „jak spočítat součin dvou celých čísel“).
V praxi jsou proto předmětem zájmu hlavně takové algoritmy, které jsou v nějakém smyslu
kvalitní. Takové algoritmy splňují různá kritéria, měřená např. počtem kroků potřebných pro běh
algoritmu, nebo jednoduchost či elegance algoritmu. Problematikou efektivity algoritmů, tzn.
metodami, jak z několika známých algoritmů řešících konkrétní problém vybrat ten nejlepší, se
zabývají odvětví informatiky nazývané algoritmická analýza a teorie složitosti.
Algoritmická složitost
Je třeba poznamenat, že abstraktní kritérium konečnosti je pro praktické použití ještě příliš slabé. V
praxi je třeba zajistit, aby algoritmus skončil „v rozumném“ čase. Za rozumný čas lze v praxi
považovat takový čas, který nám umožní smysluplně využít výsledek.
Např. existuje jednoduchý algoritmus, který dokáže určit, zda v dané šachové pozici může hráč na
tahu vynutit vítězství a zároveň dokáže určit nejlepší možný tah. Tento algoritmus se však nedá
použít, protože by na svou činnost potřeboval ohromné množství času, jakkoli je toto množství
konečné. Mimoto by takový algoritmus spotřeboval ohromné množství paměti, což je další
praktický zřetel, který se uplatňuje při volbě algoritmu. I když průměrná počítačová paměť stále
narůstá, pro některé algoritmy jí nebude nikdy dost.
Pro vyčíslení výpočetní složitosti algoritmů v závislosti na velikosti vstupních dat se používá
asymptotický zápis závislosti výpočetního času na rozsahu úlohy (typicky na počtu vstupních
údajů). Například O(log N) znamená, že počet kroků algoritmu závisí logaritmicky na velikosti
vstupních dat. Pokud u takového algoritmu zdvojnásobíme rozsah vstupních údajů, doba výpočtu
se zvýší o jednu jednotku času, pokud bude vstupních dat čtyřikrát více, doba výpočtu se prodlouží
o dvě jednotky času, a tak dále. To je třeba případ nalezení jednoho prvku o určité hodnotě v
seznamu prvků seřazeném podle hodnoty (např. nalezení jména v telefonním seznamu).
Druhy algoritmů
Algoritmy můžeme klasifikovat různými způsoby. Mezi důležité druhy algoritmů patří:
Rekurzivní algoritmy, které využívají (volají) samy sebe.
Hladové algoritmy se k řešení propracovávají po jednotlivých rozhodnutích, která, jakmile
jednou učiněna, už nejsou dále revidována.
Algoritmy typu rozděl a panuj dělí problém na menší podproblémy, na něž se rekurzivně
aplikují (až po triviální podproblémy, které lze vyřešit přímo), po čemž se dílčí řešení
vhodným způsobem sloučí.
Algoritmy dynamického programování pracují tak, že postupně řeší části problému od
nejjednodušších po složitější s tím, že využívají výsledky již vyřešených jednodušších
podproblémů. Mnoho úloh se řeší převedením na grafovou úlohu a aplikací příslušného
grafového algoritmu.
Pravděpodobnostní algoritmy (někdy též probabilistické) provádějí některá rozhodnutí
náhodně či pseudonáhodně.
V případě, že máme k dispozici více počítačů, můžeme úlohu mezi ně rozdělit, což nám
umožní ji vyřešit rychleji; tomuto cíli se věnují paralelní algoritmy.
Genetické algoritmy pracují na základě napodobování biologických evolučních procesů,
postupným „pěstováním“ nejlepších řešení pomocí mutací a křížení. V genetickém
programování se tento postup aplikuje přímo na algoritmy (resp. programy), které jsou zde
chápany jako možná řešení daného problému.
Heuristický algoritmus si za cíl neklade nalézt přesné řešení, ale pouze nějaké vhodné
přiblížení; používá se v situacích, kdy dostupné zdroje (např. čas) nepostačují na využití
exaktních algoritmů (nebo pokud nejsou žádné vhodné exaktní algoritmy vůbec známy).
Přitom jeden algoritmus může patřit zároveň do více skupin; například může být zároveň
rekurzivní a typu rozděl a panuj.
Seznam algoritmů
Eratosthenovo síto
Euklidův algoritmus
Algoritmus de Casteljau
Dijkstrův algoritmus
Bellman-Fordův algoritmus
Etymologie
Slovo algoritmus pochází ze jména významného perského matematika žijícího v první polovině 9.
století (cca 780–840), kterým byl Abū ʻAbd Allāh Muhammad ibn Mūsā al-Chwārizmī (‫دبع وبأ‬
ícíjezáhcop ,vůšížjoM nys ,ademahoM ,ahálludbA cetO„ avolsod) (‫ اهلل محمد ب ن مو سى ال خوارزمي‬z
města Chwārizm (Chórézm)“; tento kraj se nachází jižně od Aralského moře). Tento učenec ve
svém díle prakticky vytvořil systém arabských číslic a základy algebry (konkrétně metody řešení
lineárních a kvadratických rovnic), jejíž název pochází přímo z titulu tohoto díla (Kitūb al-jabr
waāl-muqūbala). Jeho jméno bylo do latiny převedeno jako algorismus, a původně znamenalo
„provádění aritmetiky pomocí arabských číslic“; abacisté počítali pomocí abaku, algoristé pomocí
algorismů.
Postupem času se kvůli neznalosti původu slova jeho podoba měnila, záměnou arabského kořene s
kořenem řeckého slova αριθμός (arithmos) se z algorismu stal algorithmus. (Později bylo v
některých jazycích včetně češtiny th změněno na t, v katalánštině se vrátilo s.) Toto slovo se
používalo jako označení různých matematických postupů, např. v 18. století označoval latinský
termín algorithmus infitesimalis „metodu výpočtů s využitím nekonečně malých veličin,
vynalezenou Leibnizem“. Slovo algoritmus v dnešním významu se používá až zhruba od 20.
století.
Překladač
(též kompilátor, anglicky compiler z to compile – sestavit, zpracovat) je všeobecně stroj,
respektive program, provádějící překlad z nějakého vstupního jazyka do jazyka výstupního.
Nejčastěji bývá tento pojem používán v programování, kde označuje nástroje překládající
algoritmus zapsaný ve vyšším programovacím jazyce do jazyka strojového, nebo spíše do
strojového kódu. (O překladačích mezi přirozenými jazyky viz strojový překlad.)
První kompletní překladač byl vyvinut v roce 1957 ve společnosti IBM a byl pro jazyk Fortran. Jazyk COBOL měl jako první na
světě překladač pro více architektur, což zvýšilo jeho přenositelnost. Tyto překladače byly vytvořeny v assembleru. Jazyky, které
umožňují napsat překladač, který přeloží sám sebe, se označují jako self-hosting („samonosné“) a prvním takovým se stal LISP,
jehož překladač byl vytvořen v roce 1962 na MIT. Ovšem použití jazyků vyšší úrovně pro psaní překladačů se stalo běžné až po
roce 1970, kdy byly překladače C a Pascalu vytvořeny v těchto jazycích.
Překladač lze navrhnout mnoha způsoby, nejčastěji bývá rozdělen na dvě části. První je závislá na
vstupním jazyce (tzv. front-end) a druhá závisí na cílové architektuře (tzv. back-end). Mezi
těmito částmi program existuje ve formě tzv. mezikódu (bytekódu).
Typický překladač bývá rozvržen do následujících jednotek:
Obsah
[skrýt]
1 Lexikální analyzátor
2 Syntaktický analyzátor
3 Sémantický analyzátor
4 Překladač do mezikódu
5 Optimalizátor
6 Generátor kódu
7 Podívejte se také
8 Externí odkazy
Interpret (software)
Interpret je speciální software, který umožňuje spouštět počítačové programy vytvořené ve
skriptovaném programovacím jazyku. Tato činnost je podobná emulaci s tím rozdílem, že emulátor
obvykle simuluje činnost existujícího hardwaru, zatímco interpret nejčastěji program spouští nad
virtuálním strojem.
V praxi nejsou rozdíly zcela jednoznačné. Například Java Virtual Machine, virtuální stroj nad
kterým běžel kód Javy, už má hardwarovou implementaci.
Virtuální stroj má často zásobníkovou architekturu.
Zásobníková architektura
Java
LISP
PostScript
Ostatní
shell
Vaše příspěvky udržují Wikipedii v chodu!
Java
Java je objektově orientovaný programovací jazyk, který vyvinula firma Sun Microsystems a
představila 23. května 1995.
Java je jedním z nejpoužívanějších programovacích jazyků na světě. Díky své přenositelnosti je
používán pro programy, které mají pracovat na různých systémech počínaje čipovými kartami
(platforma JavaCard), přes mobilní telefony a různá zabudovaná zařízení (platforma Java ME),
aplikace pro desktopové počítače (platforma Java SE) až po rozsáhlé distribuované systémy
pracující na řadě spolupracujících počítačů rozprostřené po celém světě (platforma Java EE). Tyto
technologie se jako celek nazývají platforma Java. Dne 8. května 2007 Sun uvolnil zdrojové kódy
Javy (cca 2,5 miliónů řádků kódu) a Java bude dále vyvíjena jako open source.
Existuje několik teorií o původu jména tohoto jazyka, jedna z nich spekuluje ispiraci oblíbeným
kofeinovým nápojem hlavních proramátorů.[1]
JavaScript
JavaScript je multiplatformní, objektově orientovaný skriptovací jazyk, jehož autorem je Brendan
Eich z tehdejší společnosti Netscape.
Nyní se zpravidla používá jako interpretovaný programovací jazyk pro WWW stránky, vkládaný
přímo do HTML kódu stránky. Jsou jím obvykle ovládány různé interaktivní prvky GUI (tlačítka,
textová políčka) nebo tvořeny animace a efekty obrázků.
Jeho syntaxe patří do rodiny jazyků C/C++/Java. Slovo Java je však součástí jeho názvu pouze s
marketingových důvodů a s programovacím jazykem Java jej vedle názvu spojuje jen podobná
syntaxe. JavaScript byl v červenci 1997 standardizován asociací ECMA (Europen Computer
Manufacturers Association) a v srpnu 1998 ISO (International Standards Organization).
Standardizovaná verze JavaScriptu je pojmenována jako ECMAScript a z ní byly odvozeny i další
implementace, jako je například ActionScript.
JavaScript byl původně obchodní název implementace společnosti Netscape, kde byl vyvíjen
nejprve pod názvem Mocha, později LiveScript, ohlášen byl společně se společností Sun
Microsystems v prosinci 1995 jako doplněk k jazykům HTML a Java. Pro verzi firmy Microsoft je
použit název JScript.
Program v JavaScriptu se obvykle spouští až po stažení WWW stránky z Internetu (tzv. na straně
klienta), na rozdíl od ostatních jiných interpretovaných programovacích jazyků (např. PHP a
ASP), které se spouštějí na straně serveru ještě před stažením z Internetu. Z toho plynou jistá
bezpečností omezení, JavaScript např. nemůže pracovat se soubory, aby tím neohrozil soukromí
uživatele.
JavaScript je možné použít i na straně serveru. První implementací JavaScriptu na straně serveru
byl LiveWire firmy Netscape vypuštěný roku 1996, dnes existuje několik možností včetně
opensource implementace Rhinola založená na Rhino, gcj a Apache.
Obsah
[skrýt]
1 Základní vlastnosti
o 1.1 Nevýhody jazyka Java
2 Ukázka kódu
3 Související články
4 Reference
5 Externí zdroje
o 5.1 Informační servery v českém jazyce
Základní vlastnosti
jednoduchý – jeho syntaxe je zjednodušenou (a drobně upravenou) verzí syntaxe jazyka C
a C++. Odpadla většina konstrukcí, které způsobovaly programátorům problémy a na
druhou stranu přibyla řada užitečných rozšíření.
objektově orientovaný – s výjimkou osmi primitivních datových typů jsou všechny ostatní
datové typy objektové.
distribuovaný – je navržen pro podporu aplikací v síti (podporuje různé úrovně síťového
spojení, práce se vzdálenými soubory, umožňuje vytvářet distribuované klientské aplikace a
servery).
interpretovaný – místo skutečného strojového kódu se vytváří pouze tzv. mezikód
(bajtkód). Tento formát je nezávislý na architektuře počítače nebo zařízení. Program pak
může pracovat na libovolném počítači nebo zařízení, který má k dispozici interpret Javy,
tzv. virtuální stroj Javy - Java Vitrual Machine (JVM).
V pozdějších verzích Javy nebyl mezikód přímo interpretován, ale před prvním svým
provedením dynamicky zkompilovány do strojového kódu daného počítače (tzv. just in
time compilation - JIT). Tato vlastnost zásadním způsobem zrychlila provádění programů v
Javě ale výrazně zpomalila start programů.
V současnosti se převážně používají technologie zvané HotSpot compiler, které mezikód
zpočátku interpretují a na základě statistik získaných z této interpretace později provedou
překlad často používaných částí do strojového kódu včetně dalších dynamických
optimalizací (jako je např. inlining krátkých metod atp.).
robustní – je určen pro psaní vysoce spolehlivého softwaru – z tohoto důvodu neumožňuje
některé programátorské konstrukce, které bývají častou příčinou chyb (např. správa paměti,
příkaz goto, používání ukazatelů). Používá tzv. silnou typovou kontrolu – veškeré
používané proměnné musí mít definovaný svůj datový typ.
Správa paměti je realizována pomocí automatického Garbage collectoru který automaticky
vyhledává již nepoužívané části paměti a uvolňuje je pro další použití. To bylo v prvních
verzích opět příčinou pomalejšího běhu programů. V posledních verzích běhových
prostředí je díky novým algoritmům pro garbage collection a tzv. generační správě paměti
(paměť je rozdělena na více částí, v každé se používá jiný algoritmus pro garbage collection
a objekty jsou mezi těmito částmi přesunovány podle délky svého života) tento problém ze
značné části eliminován.
bezpečný – má vlastnosti, které chrání počítač v síťovém prostředí, na kterém je program
zpracováván, před nebezpečnými operacemi nebo napadením vlastního operačního systému
nepřátelským kódem.
nezávislý na architektuře – vytvořená aplikace běží na libovolném operačním systému
nebo libovolné architektuře. Ke spuštění programu je potřeba pouze to, aby byl na dané
platformě instalován správný virtuální stroj. Podle konkrétní platformy se může přizpůsobit
vzhled a chování aplikace.
přenositelný – vedle zmíněné nezávislosti na architektuře je jazyk nezávislý i co se týká
vlastností základních datových typů (je například explicitně určena vlastnost a velikost
každého z primitivních datových typů). Přenositelností se však myslí pouze přenášení v
rámci jedné platformy Javy (např. J2SE). Při přenášení mezi platformami Javy je třeba dát
pozor na to, že platforma určená pro jednodušší zařízení nemusí podporovat všechny
funkce dostupné na platformě pro složitější zařízení a kromě toho může definovat některé
vlastní třídy doplňující nějakou speciální funkčnost nebo nahrazující třídy vyšší platformy,
které jsou pro nižsí platformu příliš komplikované.
výkonný – přestože se jedná o jazyk interpretovaný, není ztráta výkonu významná, neboť
překladače pracují v režimu „právě včas“ a do strojového kódu se překládá jen ten kód,
který je opravdu zapotřebí.
víceúlohový – podporuje zpracování vícevláknových aplikací
dynamický – Java byla navržena pro nasazení ve vyvíjejícím se prostředí. Knihovna může
být dynamicky za chodu rozšiřována o nové třídy a funkce, a to jak z externích zdrojů, tak
vlastním programem.
elegantní – velice pěkně se v něm pracuje, je snadno čitelný (např. i pro publikaci
algoritmů), přímo vyžaduje ošetření výjimek a typovou kontrolu.
Nevýhody jazyka Java
Proti programovacím jazykům, které provádějí tzv. statickou kompilaci (např. C++), je start
programů psaných v Javě pomalejší, protože prostředí musí program nejprve přeložit a potom
teprve spustit. Je však možnost využít mechanismů JIT a HotSpot, kdy se často prováděné nebo
neefektivní části kódu přeloží do strojového kódu a program se zrychlí. Na zrychlení se také podílí
nové přístupy ke správě paměti, viz výše popsaná generační správa paměti.
Další nevýhodou projevující se hlavně u jednodušších programů je větší paměťová náročnost při
běhu způsobená nutností mít v paměti celé běhové prostředí.
V návrhu Javy je vidět určitá dogmatičnost a snaha znemožnit programátorovi psát problematické
konstrukce známé především z jazyka C. Součástí jazyka proto nejsou například bezznaménková
čísla, příkaz goto nebo preprocesor, ačkoli se v oddůvodněných příkladech jedná o užitečné
nástroje a ani rozšířené možnosti Javy je plně nenahrazují.
Ukázka kódu
Tradiční program „Hello world“ vypadá takto:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello world!");
}
}
Netradiční verze „Hello world“ s malou ukázkou objektového přístupu:
public class HelloWorld
{
public static void main(String[] args)
{
Pozdrav pozdrav = new Pozdrav("Ahoj svete!");
pozdrav.print();
}
}
class Pozdrav
{
private String text;
public Pozdrav(String pozdrav)
{
text = pozdrav;
}
private String getText()
{
return text;
}
public void print()
{
System.out.println(getText());
}
}
Informační servery v českém jazyce
autorizované Java centrum
o Javě na serveru Dioné
Java blog jAbLoK
odborný Java blog Romana "Dagiho" Pichlíka
ASP -Active Server Pages
Tento článek potřebuje úpravy. Můžete Wikipedii pomoci tím, že ho vylepšíte, alespoň náhradou této výzvy
za konkrétnější. Jak by měly články vypadat, popisuje stránka Vzhled a styl, konkrétní problémy tohoto mohou být
specifikovány na diskusní stránce.
ASP (Active Server Pages) je technologie nezávislá na programovacím jazyce (vyvinutá společností Microsoft),
která umožňuje vykonávání kódu na straně serveru a následné odeslání výsledku uživateli. To znamená, že
webová stránka s příponou .asp obsahuje kód, který se vykoná na IIS serveru a prohlížeči odešle pouze výsledek
ve značkovacím jazyce HTML, který umí bez problému zobrazit. Programovací jazyky, které se používají jsou
tyto: VBScript a JScript.
Příklad kódu na serveru
<%
For i = 1 To 6 Step 1
Response.Write "<h" & i & ">Nadpis velikosti " & i & „</h“ & i & ">"
Next
%>
Klientovi se v tomto případě odešle pouze HTML
<h1>Nadpis
<h2>Nadpis
<h3>Nadpis
<h4>Nadpis
<h5>Nadpis
<h6>Nadpis
[editovat]
velikosti
velikosti
velikosti
velikosti
velikosti
velikosti
1</h1>
2</h2>
3</h3>
4</h4>
5</h5>
6</h6>
Verze
ASP bylo zatím vydáno v 6 hlavních verzích:
ASP verze 1.0 (distribuováno s IIS 3.0) v prosinci 1996
ASP verze 2.0 (distribuováno s IIS 4.0) v září 1997
ASP verze 3.0 (distribuováno s IIS 5.0) v listopadu 2000
ASP.NET verze 1.0 (součást rozhraní .NET Framework) v lednu 2002
ASP.NET verze 1.1 v dubnu 2003
ASP.NET verze 2.0 v listopadu 2005
[editovat]
Externí odkazy
Jemný úvod do ASP - popis základních objektů ASP a jejich možností, ukázky kódu ve VBScriptu
Object Pascal
Object Pascal je rozšíření programovacího jazyka Pascal o některé vlastnosti objektově
orientovaného programování.
PHP
Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
PHP (rekurzivní zkratka PHP: Hypertext Preprocessor, „PHP: Hypertextový preprocesor“,
původně Personal Home Page) je skriptovací programovací jazyk, určený především pro
programování dynamických internetových stránek. Nejčastěji se začleňuje přímo do struktury
jazyka HTML, XHTML či WML, což je velmi výhodné pro tvorbu webových aplikací. PHP lze
ovšem také použít i k tvorbě konzolových a desktopových aplikací.
Samotná Wikipedie je naprogramována v PHP.
PHP skripty jsou prováděny na straně serveru, k uživateli je přenášen až výsledek jejich činnosti.
Syntaxe jazyka kombinuje hned několik programovacích jazyků (Perl, C, Pascal a Java). PHP je
nezávislý na platformě, skripty fungují bez úprav na mnoha různých operačních systémech.
Obsahuje rozsáhlé knihovny funkcí pro zpracování textu, grafiky, práci se soubory, přístup k
většině databázových serverů (mj. MySQL, ODBC, Oracle, PostgreSQL, MSSQL), podporu celé
řady internetových protokolů (HTTP, SMTP, SNMP, FTP, IMAP, POP3, LDAP, …)
PHP se stalo velmi oblíbeným především díky jednoduchosti použití a tomu, že kombinuje
vlastnosti více programovacích jazyků a nechává tak vývojáři částečnou svobodu v syntaxi. V
kombinaci s databázovým serverem (především s MySQL nebo PostgreSQL) a webovým serverem
Apache je často využíván k tvorbě webových aplikací. Díky velmi častému nasazení na serverch se
vžila zkratka LAMP – tedy spojení Linux, Apache, MySQL a PHP nebo Perl.
S verzí PHP 5 se výrazně zlepšil přístup k objektově orientovanému programování podobný Javě.
Obsah
[skrýt]
1 Historie
2 Ukázka kódu
3 Typické vlastnosti jazyka PHP
4 Historie jazyka
5 Externí odkazy
Historie
Od roku 1994 je PHP jedním z nejpoužívanějších způsobů tvorby dynamicky generovaných
WWW stránek. Jeho tvůrce (Rasmus Lerdorf) jej vytvořil pro svou osobní potřebu přepsáním z
Perlu do jazyka C. Sada skriptů byla vydána ještě v témže roce pod názvem Personal Home Page
Tools, zkráceně PHP.
V polovině roku se systém PHP spojil s programem Form Interpreter stejného autora. Tak vzniklo
PHP/FI 2.0. Zeev Suraski a Andi Gutmans v roce 1997 přepsali parser a zformovali tak základ
PHP3. Současně byl název změněn na dnešní podobu PHP Hypertext Preprocessor. PHP3 vyšlo v
roce 1998, bylo rychlejší, obsahovalo více funkcí. Také běželo i pod operačním systémem
Windows.
V roce 2000 vychází PHP verze 4, o čtyři roky později pak verze 5 s vylepšeným objektovým
přístupem, podobným jazyku Java. Zatím poslední verzí je 5.2.1 z roku 2007.
Ukázka kódu
Takto v PHP vypadá program Hello world:
<?php
echo "ahoj světe";
?>
Typické vlastnosti jazyka PHP
Jazyk PHP je dynamicky typový, tzn. že datový typ proměnné se určí v okamžiku přiřazení
hodnoty.
Díky tomu má PHP dva typy porovnání, '==' stejný jako v C, a '===' který platí jen když
jsou oba dva výrazy stejného typu.
Pole jsou heterogenní, mohou tedy obsahovat jakékoli údaje, stejně tak jako jejich indexy.
Řetězce lze uzavírat jak do uvozovek (obsah je parsován), tak do apostrofů (obsah není
parsován).
// Zde je v promenne string (tecka je operator spojovani retezcu)
$retez = "Ahoj svete".',mam se dobre'." nevadi ze stridam oddelovace";
// Zde je v promenne cislo (int)
$cislo = 100;
// Do promenne je mozne dat pole, ktere obsahuje jak cisla, tak znaky ci dalsi
pole
$pole = Array ('a','b', 1, 2, Array("prvni"=>'podpole','vytisteno'));
// Nenahlasi chybu (jenom varovani) a vytiskne 'Array'
print $pole;
// Vytiskne obsah promenne pole
print_r($pole);
// Test porovavani
$cislo = 100;
$retez = '100';
// Toto porovnani ('==') plati diky automaticke typove konverzi
if ($retez == $cislo) echo 'Jsou stejne';
// Ale porovnani pomoci '===' neplati nebot nejsou stejne typy
if ($retez === $cislo) echo 'To by neslo';
PHP do verze 4.2.0 automaticky přejímalo veškeré proměnné (považovalo je za globální)
poslané jakoukoliv metodou (POST, GET, COOKIE, ale i SESSION) (pokud administrátor
serveru tuto funkci nevypnul) a umožňovalo s nimi dále pracovat.
od verze 4.2.0 lze hodnotu získat ze superglobálních proměnných s garancí původu
informace (máme zaručeno, že data byla odeslána požadovanou metodou). Administrátor
serveru má stále možnost používání globálních proměnných povolit, ale z bezpečnostních
důvodů se to silně nedoporučuje.
//odešlu formulář metodou POST, kde do pole s názvem jmeno vepíšu 'Tom'
echo $jmeno; //vrátí 'Tom', funguje pouze v případě povolených globálních
proměnných
echo $_POST['jmeno']; //vrátí 'Tom', superglobální proměnné fungují i při
vypnutých globálních proměnných
echo $_GET['jmeno']; //vypíše se chybové hlášení o neexistenci proměnné a
vrátí NULL
//NULL je zvláštní hodnota libovolného typu proměnných pro stav 'nedefinováno'
Historie jazyka
Verze
PHP 1.0
Datum
8. června, 1995
PHP 2.0 (PHP/FI) 16. dubna, 1996
PHP 3.0
6. června, 1998
PHP 4.0
22. května, 2000
PHP 4.1
10. prosince, 2001
PHP 4.2
22. dubna, 2002
PHP 4.3
27. prosince, 2002
PHP 4.4
11. července, 2005
PHP 5.0
13. července, 2004
PHP 5.1
25. listopadu, 2005
PHP 5.2
2. listopadu, 2006
Seriál o PHP na serveru linuxsoft.cz
Články o PHP na serveru Interval.cz
Knihovna PHP - příručka PHP pro každého (česky)
Objektově orientované programování (OOP) v PHP - kompletní příručka založená na PHP5
(česky)
PHP pro začátečníky na serveru Jakpsatweb.cz
PHP triky - Weblog o elegantním programování v PHP pro mírně pokročilé
XHTML
Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
XHTML (zkratka anglického extensible hypertext markup language – „rozšiřitelný značkovací
jazyk pro hypertext“) je značkovací jazyk pro tvorbu hypertextových dokumentů v prostředí
WWW vyvinutý konsorciem W3C. Je následníkem jazyka HTML, jehož vývoj byl ukončen, a na
rozdíl od svého předchůdce se jedná o aplikaci XML.
Obsah
[skrýt]
1 Verze
o 1.1 XHTML 1.0
o 1.2 Modularizace XHTML
o 1.3 XHTML Basic
o 1.4 XHTML Mobile Profile
o 1.5 XHTML 1.1 - modulově založené XHTML
o 1.6 XHTML-Print
o 1.7 XHTML 2.0
o 1.8 Rozdíly XHTML oproti HTML
2 Odkazy
o 2.1 Reference
o 2.2 Další články
o 2.3 Externí odkazy
XHTML 1.0
První specifikace, jejíž cílem bylo převedení staršího jazyka HTML tak, aby vyhovoval
podmínkám tvorby XML dokumentů a přitom byla zachována zpětná kompatibilita.
Existuje ve třech verzích: Strict, Transitional a Frameset.
Jediným podstatným rozdílem proti HTML je, že veškeré prvky jsou párové a musí být
uzavřeny. Hodnoty všech atributů musí být zapsány v uvozovkách a názvy všech prvků a
atributů musí být psány malými písmeny.
Modularizace XHTML
Dalším krokem ve vývoji XHTML byla modularizace s cílem dosáhnutí vyšší flexibility
napříč uživatelskými agenty (WWW prohlížeče, mobilní zařízení, tiskárny, čtečky apod.).
XHTML Basic
Příklad minimální sady modulů potřebné k vytvoření XHTML dokumentu, která je cílená
na mobilní aplikace.
XHTML Mobile Profile
XHTML Mobile Profile - někdy taky XHTML MP je postaveno na základě XHTML Basic
a je určeno pro použití v mobilních telefonech. Někdy je také označováno jako WAP 2.0.
XHTML MP podporuje narozdíl od WAP 2.0 barvu a barevné obrázky ve formátech GIF,
JPEG a PNG.
XHTML 1.1 - modulově založené XHTML
Příklad rozsáhlé sady modulů pro komplexnější tvorbu XHTML dokumentů.
Vynechává již prakticky všechny prezentační vlastnosti.
Je velice podobné XHTML 1.0 Strict, ale na rozdíl od něj může vzhledem ke své
modularizaci sloužit jako základ budoucím rozšířeným dokumentům z rodiny XHTML.
Je výslovně zakázáno odesílat takto zformátovaný dokument s MIME typem text/html, ale
je nutno ho odesílat s MIME typem application/xhtml+xml. Tohoto lze docílit několika
způsoby:
o pojmenování souboru *.xhtml;
o odesláním MIME typu s hlavičkou pomocí HTTP;
o atd.
XHTML-Print
Vývojové stádium Candidate Recommendation.
Zaměření na tiskový výstup.
XHTML 2.0
Vývojové stádium Working Draft.
Není zamýšleno tak, aby bylo zpětně kompatibilní se svými předchůdci.
Rozdíly XHTML oproti HTML
V XHTML na rozdíl od HTML musí být všechny tagy ukončené a to včetně nepárových
jako jsou br, hr nebo img.
V XHTML na rozdíl od HTML musí být všechny tagy a jejich atributy napsány malými
písmeny
Všechny hodnoty atributů musí být uzavřeny do uvozovek
Tag img má povinný atribut alt.
Z tagu href byl odstraněn atribut target, který umožňoval otevřít odkaz na nové stránce.
Lze jej nahradit pomocí JavaScriptu.
Tento článek o počítačích je pahýl. Můžete pomoci Wikipedii tím, že jej vhodně rozšíříte.
Odkazy
Reference
XHTML™ 1.0: Rozšířitelný hypertextový značkovací jazyk
oficiální specifikace XHTML 1.0 (W3C Recommendation) (česky)
Modularization of XHTML™
oficiální specifikace Modularizace XHTML (W3C Recommendation) (anglicky)
XHTML™ Basic
oficiální specifikace XHTML Basic (W3C Recommendation) (anglicky)
XHTML™ 1.1: Modulově založený XHTML
oficiální specifikace XHTML 1.1 (W3C Recommendation) (česky)
XHTML-Print
oficiální specifikace XHTML Basic (W3C Candidate Recommendation) (anglicky)
XHTML™ 2.0
oficiální návrh specifikace XHTML 2.0 (W3C Working Draft) (anglicky)
Další články
HTML
XML
DTD
Externí odkazy
W3C XHTML Validátor - oficiální referenční validátor W3C
HTML Validátor - nástroj ověřující validitu (česky); výsledky tohoto nástroje se záměrně
liší od výsledků oficiálního validátoru (vyjadřují soukromý názor autora)
XHTML - kompletní průvodce - úplný rozbor normy a praktické nasazení jednotlivých
elementů (česky)
Soumrak nad moderním X Zamyšlení nad XHTML
Proč nepoužívám XHTML - článek na Interval.cz
Proč používám XHTML - článek na Interval.cz
Jak používám XHTML - článek na Interval.cz
Citováno z „http://cs.wikipedia.org/wiki/XHTML“
XML
Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
XML (eXtensible Markup Language, česky rozšiřitelný značkovací jazyk) je obecný značkovací
jazyk, který byl vyvinut a standardizován konsorciem W3C. Umožňuje snadné vytváření
konkrétních značkovacích jazyků pro různé účely a široké spektrum různých typů dat.
Jazyk je určen především pro výměnu dat mezi aplikacemi a pro publikování dokumentů. Jazyk
umožňuje popsat strukturu dokumentu z hlediska věcného obsahu jednotlivých částí, nezabývá se
sám o sobě vzhledem dokumentu nebo jeho částí. Prezentace dokumentu (vzhled) se potom
definuje připojeným stylem. Další možností je pomocí různých stylů provést transformaci do
jiného typu dokumentu, nebo do jiné struktury XML.
Původní jazyk pro publikování HTML již přestal vyhovovat především pro svou složitost, která
vznikla jeho postupným (a svévolným) rozšiřováním. Jazyk XML nemá žádné předdefinované
značky (tagy, názvy jednotlivých elementů) a také jeho syntaxe je podstatně přísnější, než HTML.
Obsah
[skrýt]
1 Vlastnosti XML
o 1.1 Standardní formát pro výměnu informací
o 1.2 Mezinárodní podpora
o 1.3 Vysoký informační obsah
o 1.4 Snadná konverze do jiných formátů
o 1.5 Automatická kontrola struktury dokumentu
o 1.6 Hypertext a odkazy
2 Syntaxe XML
3 Aplikace XML
4 Verze XML
5 Externí odkazy
6 Literatura
Vlastnosti XML
Standardní formát pro výměnu informací
V dnešní době již není možné zasílat dokumenty v nějakém tvaru, který vyžaduje speciální
software některé firmy, jako je např. formát DOC, XLS nebo T602. Je používána celá řada
operačních a informačních systémů a není záruka, že každý uživatel vlastní příslušný software.
Je tedy potřeba používat nějaký jednoduchý otevřený formát, který není úzce svázán s nějakou
platformou nebo proprietární technologií. Tím může být právě XML, který je založen na
jednoduchém textu a je zpracovatelný (v případě potřeby) libovolným textovým editorem.
Specifikace XML konsorcia W3C je zdarma přístupná všem. Každý tak může bez problémů do
svých aplikací implementovat podporu XML. To je velký rozdíl oproti firemním formátům, k nimž
není k dispozici žádná dokumentace a navíc se jedná v porovnání s XML o velice složité, často
binární, formáty.
Mezinárodní podpora
XML hned od samého počátku myslel na potřeby i jiných jazyků než je angličtina. Jako znaková
sada se implicitně používá ISO 10646 (také Unicode). V XML proto můžeme vytvářet dokumenty,
které obsahují texty v mnoha jazycích najednou – můžeme přepínat mezi různými jazyky v jednom
dokumentu. Současně je přípustné i jiné libovolné kódování (např. windows-1250, iso-8859-2),
musí však být v každém dokumentu přesně určeno. Odpadají tak problémy s konverzí z jednoho
kódování do druhého.
Vysoký informační obsah
Pomocí XML značek (tagů) vyznačujeme v dokumentu význam jednotlivých částí textu.
Dokumenty tak obsahují více informací, než kdyby se používalo značkovaní zaměřené na
prezentaci (vzhled) – definice písma, odsazení a podobně. XML dokumenty jsou informačně
bohatší. To lze samozřejmě s výhodou využít v mnoha oblastech. Největší přínos bude samozřejmě
pro prohledávání, kdy můžeme určit i jaký význam má mít hledaný text.
Snadná konverze do jiných formátů
Při používání XML dokumentu potřebujeme také dokument zobrazit. XML samo o sobě žádné
prostředky pro definici vzhledu nenabízí. Existuje ale několik stylových jazyků, které umožňují
definovat, jak se mají jednotlivé elementy zobrazit. Souboru pravidel nebo příkazů, které definují,
jak se dokument převede do jiného formátu, se říká styl.
Jeden vytvořený styl můžeme aplikovat na mnoho dokumentů stejného typu, stejně tak můžeme na
jeden dokument aplikovat několik různých stylů. Výsledkem může být např. PostScriptový soubor,
HTML kód nebo XML s obsahem původního dokumentu.
Stylových jazyků existuje dnes několik. Mezi nejznámější patří asi kaskádové styly (CSS). Ty lze
použít pouze pro jednoduché formátování, které dobře poslouží pro zobrazení dokumentu na
obrazovce. Další možností je rodina jazyků XSL (eXtensible Stylesheet Language). Ta umožňuje
dokument různě upravovat a transformovat – vybírat části dokumentu nebo generovat obsahy a
rejstříky.
Automatická kontrola struktury dokumentu
XML neobsahuje předdefinované značky (tagy), je třeba definovat vlastní značky, které budeme
používat. Tyto značky je možné (nepovinně) definovat v souboru DTD (Document Type
Definition). Potom je možné automaticky kontrolovat, zda vytvářený XML dokument odpovídá
této definici. Program, který tyto kontroly provádí, se nazývá parser. Při vývoji aplikací můžeme
parser použít, a ten za nás detekuje většinu chyb v datech.
DTD není jediný definiční jazyk pro XML. Neobsahuje možnost kontrolovat typy dat (čísla,
měnové údaje, údaje o datu a čase). To je vlastnost, která chybí při zpracování dat databázového
charakteru. V současné době se pod názvem XML schémata pracuje na půdě konsorcia W3C na
vytvoření jednotného standardu, který tyto kontroly umožní.
Pro různé standardní aplikace byla postupně vytvořena schémata, která definují značky (názvy
elementů) pro konkrétní typy dokumentů. Příkladem může být DocBook, který definuje struktury
pro vytváření knih, článků, vědeckých publikací a podobně. Výhodou takových aplikací je, že
současně s definičními soubory DTD je dodávána sada stylů (XSL souborů) pro následné
zpracování a přípravu pro tisk, nebo pro převod do jiných standardních tvarů (PostScript, HTML
atd.).
Další vlastností XML je, že v jednom dokumentu můžeme používat najednou nezávisle na sobě
několik druhů značkovaní pomocí jmenných prostorů (namespaces). To umožňuje kombinovat v
jednom dokumentů několik různých definic ve formě DTD nebo schémat bez konfliktů v
pojmenování elementů.
Hypertext a odkazy
XML stejně jako HTML umožňuje vytváření odkazů v rámci jednoho dokumentu i mezi
dokumenty, má však více možností. Je možné vytvářet i vícesměrné odkazy, které spojují více
dokumentů dohromady. Tvorba odkazů je popsána ve třech standardech – XLink, XPointer a
XPath.
XPath (XML Path Language) je jazyk, který umožňuje adresovat jednotlivé části
dokumentu.
XPointer (XML Pointer Language). Je rozšířením XPath. Používá k určování jednotlivých
částí dokumentu ve stylu: „zajímá mě první odstavec třetí kapitoly“. Není nutné ty části
dokumentu, na které chceme odkazovat, explicitně označovat pomocí návěstí jako v
HTML.
XLink (XML Linking Language) je samotný jazyk pro tvorbu odkazů. Jednotlivé
dokumenty se určují pomocí jejich URL adresy, za kterou lze uvést ještě XPointer pro
přesnější určení části dokumentu.
Syntaxe XML
XML dokument je text, vždy Unicode, v Česku obvykle kódovaný jako UTF-8, ale jsou přípustná i
jiná kódování.
Na rozdíl od např. HTML, efektivita XML je silně závislá na struktuře, obsahu a integritě. Aby byl
dokument považován za správně strukturovaný („well-formed“) [1], musí mít nejméně následující
vlastnosti:
Musí mít právě jeden kořenový (root) element.
Neprázdné elementy musí být ohraničeny startovací a ukončovací značkou. Prázdné
elementy mohou být označeny tagem „prázdný element“.
Všechny hodnoty atributů musí být uzavřeny v uvozovkách – jednoduchých (') nebo
dvojitých ("), ale jednoduchá uvozovka musí být uzavřena jednoduchou a dvojitá dvojitou.
Opačný pár uvozovek může být použit uvnitř hodnot.
Elementy mohou být vnořeny, ale nemohou se překrývat; to znamená, že každy (ne
kořenový) element musí být celý obsažen v jiném elementu.
Jména elementů v XML rozlišují malá a velká písmena: např. „<Příklad>“ a „</Příklad>“ je pár,
který vyhovuje správně strukturovanému dokumentu, pár „<Příklad>“ a „</příklad>“ je chybný.
Jednoduchý recept v XML jako příklad by mohl vypadat takto:
<?xml version="1.0" encoding="UTF-8"?>
<recept jméno="chleba" čas_přípravy="5 minut" čas_vaření="3 hodiny">
<titulek>Jednoduchý chleba</titulek>
<přísada množství="3" jednotka="šálky">Mouka</přísada>
<přísada množství="0,25" jednotka="unce">Kvasnice</přísada>
<přísada množství="1,5" jednotka="šálku">Horká voda</přísada>
<přísada množství="1" jednotka="kávová lžička">Sůl</přísada>
<instrukce>
<krok>Smíchejte všechny přísady dohromady a dobře prohněťte.</krok>
<krok>Zakryjte tkaninou a nechejte hodinu v teplé místnosti.</krok>
<krok>Znovu prohněťte, umístěte na plech a pečte v troubě.</krok>
</instrukce>
</recept>
Aplikace XML
Příklady aplikace XML:
XHTML – Nástupce jazyka HTML.
RDF – Resource Description Framework, specifikace, která umožňuje popsat metadata,
např. obsah a anotace HTML stránky.
RSS – je rodina XML formátů, sloužící pro čtení novinek na webových stránkách
SMIL – Synchronized Multimedia Integration Language, popisuje multimedia pomocí
XML.
MathML – Mathematical Markup Language je značkovací jazyk pro popis matematických
vzorců a symbolů pro použítí na webu.
SVG – Scalable Vector Graphics je jazyk pro popis dvourozměrné vektorové grafiky,
statické i dynamické (animace).
DocBook – Sada definic dokumentů a stylů pro publikační činnost
Jabber – Protokol pro Instant messaging
SOAP – Protokol pro komunikaci mezi Webovými službami
OpenDocument – Souborový formát určený pro ukládání a výměnu dokumentů
vytvořených kancelářskými aplikacemi
Verze XML
Aktuální verze XML je 1.1 (od 16. srpna 2006). První verze XML 1.0 existuje ve čtvrté revizi. Obě
verze se liší v požadavcích na použité znaky v názvech elementů, atributů atd. Verze 1.0
dovolovala pouze užívání znaků platných ve verzi Unicode 2.0, která obsahuje většinu světových
písem, ale neobsahuje později přidané sady jako je Mongolština a podobně. Verze XML 1.1
zakazuje pouze řídící znaky, což znamená, že mohou být použity jakékoli jiné znaky.
Je třeba poznamenat, že omezení ve verzi 1.0 se vztahuje pouze na názvy elementů a atributů.
Jinak obě verze dovolují v obsahu dokumentu jakékoli znaky. Verze 1.1 je tedy nutná, pokud
potřebujeme psát názvy elementů v jazyku, který byl přidán do Unicode později.
Další menší změna mezi XML 1.0 a 1.1 je, že řídící znaky se nyní mohou vkládat jen jako escape
sekvence, a se speciálními znaky „form-feed“ se musí zacházet jako s bílými znaky.
Všechny dokumenty verze 1.0 budou platné ve verzi 1.1 s jednou výjimkou: dokumenty
deklarované s kódováním ISO-8859-1, které jsou ve skutečnosti v kódu Windows CP1252,
nemusejí být nyní platné. Důvodem je, že CP1252 používají blok řídících znaků pro speciální
zobrazení, jako jsou znaky €, Œ, and ™. Dokumenty s deklarací CP1252 zůstávají platné.
Externí odkazy
ZVON – Vše o XML a jak tvořit XML
www.w3.org/XML/ – Specifikace, pracovní skupiny W3C atd.
Slabikář XML (česky)
Kurz XML
XML Document Authoring Tools
XML-DEV Mailing List
Python
Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Charakter jazyka:
víceparadigmatický
Objevil se:
1990
Navrhl jej:
Guido van Rossum
Vývoj realizuje:
Python Software Foundation
Poslední verze:
2.5
Datum verze:
Typová kontrola:
Hlavní
implementace:
Dialekty:
Ovlivněn jazyky:
19. září 2006
silná, dynamická
CPython, Jython, IronPython,
PyPy
-ABC, Perl, Lisp, Smalltalk, Tcl
Ovlivnil jazyky:
Operační systém:
Ruby, Boo, Groovy
různé platformy
Licence:
Python Software Foundation
License
Website:
www.python.org
Python je interpretovaný objektově orientovaný programovací jazyk navržený v roce 1990
Guidem van Rossumem. Python je vyvíjen jako open source projekt, který zdarma nabízí instalační
balíky pro většinu běžných platforem (Unix, Windows, Mac OS); ve většině distribucí systému
Linux je Python součástí základní instalace.
Obsah
[skrýt]
1 Vlastnosti
2 Zen of Python
3 Související projekty
4 Spolupráce s jinými programovacími jazyky
o 4.1 C a C++
o 4.2 Java
o 4.3 Prostředí .NET/Mono
5 Výkon
6 Spolupráce s jinými aplikacemi
7 Příklady
8 Charakteristika a použití jazyka
o 8.1 Proměnná je pojmenovaným odkazem na objekt
o 8.2 Funkce se uchovává jako objekt
o 8.3 Do složených datových struktur se ukládají odkazy
o 8.4 Proměnné není nutné deklarovat
o 8.5 Členské proměnné tříd mohou vznikat až za běhu
o 8.6 Typy nelze libovolně míchat
o 8.7 Ortogonalita operátorů
9 Externí odkazy
Vlastnosti
Python je dynamický interpretovaný jazyk. Někdy bývá zařazován mezi takzvané skriptovací
jazyky. Jeho možnosti jsou ale větší. Python byl navržen tak, aby umožňoval tvorbu
rozsáhlých, plnohodnotných aplikací (včetně grafického uživatelského rozhraní).
Python je hybridní jazyk (nebo také víceparadigmatický), to znamená, že umožňuje při psaní
programů používat nejen objektově orientované paradigma, ale i procedurální a v omezené míře i
funkcionální, podle toho komu co vyhovuje nebo se pro danou úlohu hodí nejlépe. Python má díky
tomu vynikající vyjadřovací schopnosti. Kód programu je ve srovnání s jinými jazyky krátký a
dobře čitelný.
K význačným vlastnostem jazyka Python patří jeho jednoduchost z hlediska učení. Bývá dokonce
považován za jeden z nejvhodnějších programovacích jazyků pro začátečníky. Tato skutečnost je
dána tím, že jedním z jeho silných inspiračních zdrojů byl programovací jazyk ABC, který byl jako
jazyk pro výuku a pro použití začátečníky přímo vytvořen. Python ale současně bourá zažitou
představu, že jazyk vhodný pro výuku není vhodný pro praxi a naopak. Podstatnou měrou k tomu
přispívá čistota a jednoduchost syntaxe, na kterou se při vývoji jazyka hodně dbá.
Význačnou vlastností jazyka Python je produktivnost z hlediska rychlosti psaní programů. Týká se
to jak nejjednodušších programů, tak aplikací velmi rozsáhlých. U jednoduchých programů se tato
vlastnost projevuje především stručností zápisu. U velkých aplikací je produktivnost podpořena
rysy, které se používají při programování ve velkém, jako jsou například přirozená podpora
prostorů jmen, používání výjimek, standardně dodávané prostředky pro psaní testů (unit testing) a
dalšími. S vysokou produktivností souvisí dostupnost a snadná použitelnost široké škály
knihovních modulů, umožňujících snadné řešení úloh z řady oblastí.
Python se snadno vkládá do jiných aplikací (embedding), kde pak slouží jako jejich skriptovací
jazyk. Tím lze aplikacím psaným v kompilovaných programovacích jazycích dodávat chybějící
pružnost. Jiné aplikace nebo aplikační knihovny mohou naopak implementovat rozhraní, které
umožní jejich použití v roli pythonovského modulu. Jinými slovy, pythonovský program je může
využívat jako modul dostupný přímo z jazyka Python (tj. extending, viz sekce Spolupráce s jinými
aplikacemi).
Mimo jiné je v něm implementován aplikační server Zope, instalátor operačního systému RedHat
Linux (Anaconda) nebo většina konfiguračních nástrojů operačního systému RedHat Linux.
Spolupráce s jinými programovacími jazyky
C a C++
Klasický Python je implementován v jazyce C (označuje se někdy jako CPython). V něm probíhá
další vývoj jazyka Python. Verze jazyka Python jsou zveřejňovány jak v podobě zdrojového kódu,
tak v podobě přeložených instalačních balíků pro různé cílové platformy.
Dostupnost zdrojového kódu a vlastnosti jazyka C umožňují zabudovat interpret jazyka Python do
jiné aplikace psané v jazycích C nebo C++. Takto zabudovaný interpret jazyka Python pak
představuje nástroj pro pružné rozšiřování funkčnosti výsledné aplikace zvenčí. Existuje i projekt
pro užší spolupráci s C++ nazvaný Boost.Python
Z těchto důvodů — a s přihlédnutím k obecně vysokému výkonu aplikací psaných v jazyce C — je
CPython nejpoužívanější implementací jazyka Python.
Java
Existuje implementace Pythonu v jazyce Java, která se jmenuje Jython. Kód napsaný v Jythonu
běží v JVM Javy a může používat všechny knihovny prostředí Java. V Javě lze naopak používat
všechny knihovny napsané v Jythonu.
Nevýhodou Jythonu je, že je několik verzí pozadu za implementací CPython. Například v době
vypuštění verze CPython 2.4.3 (březen 2006) byla k dispozici teprve verze Jython 2.1. Řada
význačných vlastností jazyka Python se přitom objevuje až od verze 2.2. Při používání Jython z
javovských aplikací ale nemusí být otázka nedostupnosti novějších rysů tak palčivá.
Výkon
Výkon aplikací napsaných v Pythonu je dobrý, protože výkonově kritické knihovny jsou
implementovány v jazyce C, s kterým Python výborně spolupracuje. I samotný jazyk je na tom v
porovnání s jinými interpretovanými jazyky dobře. Je např. 3 až 5 krát rychlejší než PHP. Pro
Python navíc existuje snadno použitelná knihovna Psyco, která transparentně optimalizuje kód
Pythonu na výkon. Některé operace jsou pomocí Psyco urychleny až řádově.
Spolupráce s jinými aplikacemi
Jak již bylo řečeno, Python se snadno vkládá do jiných aplikací, kde pak slouží jako jejich
skriptovací jazyk. Lze ho najít např. v 3D programu Blender, v kancelářském balíku
OpenOffice.org, v textovém editoru Vim. Lze jej alternativně použít jako skriptovací jazyk
aplikace GIMP, existují pythonovská aplikační rozhraní pro celou řadu dalších projektů —
například pro ImageMagick. Varianta Jython (implementace Pythonu v Javě — viz dále) jej
umožňuje používat jako skriptovací jazyk všude tam, kde lze používat skripty v Javě — například
v editoru jEdit.
Příklady
Ukázkový program Hello world vypadá velmi jednoduše:
print "Hello, World!"
Program pro výpočet obsahu kruhu ze zadaného poloměru by mohl vypadat například takto:
# toto je komentář a interpret jej ignoruje
import math
# zpřístupní modul s matematickými funkcemi a konstantami
(sin, cos, pi atp.)
vstup = raw_input("Zadejte polomer: ") # zobrazí výzvu a načte nějaký řetězec
r = float(vstup)
# převede řetězec na desetiné číslo
S = r**2 * math.pi
# umocní r na 2 a vynásobí jej pi
print "Výsledek je: ", S
# zobrazí výsledek
Výpočet faktoriálu v porovnání s jazykem C:
Program v jazyce Python
def factorial(x):
if x <= 0:
return 1
else:
return x * factorial(x - 1)
Odpovídající program v jazyce C
int factorial(int x) {
if (x <= 0)
return 1;
else
return x * factorial(x - 1);
}
Charakteristika a použití jazyka
Proměnná je pojmenovaným odkazem na objekt
Každá proměnná se chápe jako pojmenovaný odkaz na objekt. Přesněji řečeno, jméno proměnné je
svázáno s jinak bezejmenným objektem. Příkaz přiřazení nezajistí okopírování hodnoty
navázaného objektu. Provede se pouze svázání nového jména s původním objektem.
a = [1, 2]
b = a
Jména a i b jsou nyní svázána se stejným objektem. Pokud objekt může být měněn, pak se změna
provedená přes jméno b projeví i při následném přístupu přes jméno a. Příklad – zrušíme první
prvek seznamu přes jméno b a zobrazíme obsah seznamu přes jméno a:
del b[0]
print a
Zobrazí se
[2]
Funkce se uchovává jako objekt
Funkce se chová jako běžný objekt, dokud není zavolána.
def funkce():
print 'Python'
f = funkce
p = [1, 2, 'test', f]
p[3]()
Lze s ní manipulovat, ukládat do proměnných, polí, objektů. Přesněji řečeno, manipuluje se s
odkazem na objekt funkce. S objektem funkce je možné podle potřeby svázat i nové jméno.
Do složených datových struktur se ukládají odkazy
Do složených datových struktur se ukládají odkazy na objekty, nikoliv objekty samotné. Typ
objektu není svázán s odkazem. Z toho vyplývá, že například do jednoho seznamu je možné
současně uložit odkazy na objekty libovolného typu:
a = [1, 2, 'pokus', u"UNICODE", ('a tak', u'dále…'), {'4':44, 5:55}]
Proměnné není nutné deklarovat
V jiných jazycích se při deklaraci proměnné uvádí souvislost jména proměnné s typem ukládané
hodnoty. V jazyce Python je proměnná jen pojmenovaným odkazem na nějaký objekt. Typ objektu
je ale vázán na odkazovaný objekt, nikoliv na jméno. Potřeba deklarace proměnné ve významu
určení souvisejícího typu dat tedy odpadá.
Existence, či neexistence jména přímo nesouvisí s existencí či neexistencí hodnotového objektu.
Význam deklarace proměnné ve smyslu popisu existence související hodnoty tedy rovněž odpadá.
Proměnná, jako pojmenovaný odkaz, vzniká v okamžiku, kdy se jméno objeví na levé straně
přiřazovacího příkazu. Jméno proměnné může být později svázáno dalším přiřazením s jiným
objektem zcela jiného typu.
p = 1
p2 = ""
p3 = p
Členské proměnné tříd mohou vznikat až za běhu
Mezi běžné praktiky při vytváření objektu patří i založení používaných členských proměnných.
Tento obrat se ale v jazyce Python chápe jako užitečná technika, nikoliv jako nutnost. Členské
proměnné (čili proměnné uvnitř objektu) mohou vznikat až za běhu.
class pokus: pass #prázdná třída
obj = pokus()
obj.field1 = 33
obj.field2 = 'str'
Existují ale techniky, které umožňují prostředky jazyka zamezit možnost dodatečného přidávání
členských proměnných.
Typy nelze libovolně míchat
Při operacích nad objekty se provádí silná typová kontrola. Narozdíl od kompilovaných jazyků se
ale provádí až za běhu aplikace.
Ortogonalita operátorů
Při vývoji jazyka se kladl a klade důraz na to, aby operátory nebyly vázány na specifické datové
typy (pokud je to možné). Přípustnost použití operátoru pro konkrétní operandy se navíc
vyhodnocuje až za běhu. Prakticky to znamená, že například následující funkci, která v těle
používá operátor plus, je možné předat jednak číselné a jednak řetězcové argumenty:
def dohromady(a, b):
return a + b
dohromady(2, 3)
# vrátí 5
dohromady("ahoj", ' nazdar') # vrátí 'ahoj nazdar'
Nejde jen o zajímavou hříčku. Běžné pythonovské funkce tím získávají vlastnosti, kterými se
zabývá generické programování.
Externí odkazy
Projekt Wikibooks nabízí knihu v angličtině na téma:
Python
www.python.org – Domovská stránka projektu (anglicky, některé česky)
www.py.cz – PyCZ, komunitní český web
Python vs. Python Psyco – Benchmark
Boost.Python — C++ knihovna pro spolupráci mezi C++ a Pythonem
Alternativní implementace:
Jython
IronPython
Dokumentace, učebnice:
Originální tutorial – anglicky
Originální dokumentace – anglicky
Učebnice jazyka Python (aneb Létající cirkus) – český překlad
Létající cirkus, PDF – Seriál na ROOT.CZ, 21 dílů,
Jak se naučit programovat (překlad Learning to Program) aktuální pracovní verze
Python – programování zábavou – kvalitní český web o Pythonu, základy, ukázky, praxe
SQL
Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
SQL (někdy vyslovováno anglicky es-kjů-el /ɛs kjʊː ɛɫ/ IPA, někdy též síkvl /siːkwəl/ IPA) je
standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích. SQL je
zkratka anglických slov Structured Query Language (strukturovaný dotazovací jazyk).
Obsah
[skrýt]
1 Historie SQL
2 Popis jazyka
o 2.1 Příkazy pro manipulaci s daty
o 2.2 Příkazy pro definici dat
o 2.3 Příkazy pro řízení dat
o 2.4 Ostatní příkazy
3 Externí odkazy
Historie SQL
V 70. letech 20. století probíhal ve firmě IBM výzkum relačních databází. Bylo nutné vytvořit sadu
příkazů pro ovládání těchto databází. Vznikl tak jazyk SEQUEL (Structured English Query
Language). Cílem bylo vytvořit jazyk, ve kterém by se příkazy tvořily syntakticky co nejblíže
přirozenému jazyku (angličtině).
K vývoji jazyka se přidaly další firmy. V r. 1979 uvedla na trh firma Relational Software, Inc.
(dnešní Oracle Corporation) svůj relační databázový systém Oracle. IBM uvedla v roce 1981 nový
systém SQL/DS a v roce 1983 systém DB2. Dalšími systémy byly např. Progress, Informix a
SyBase. Ve všech těchto systémech se používala varianta jazyka SEQUEL, který byl přejmenován
na SQL.
Relační databáze byly stále významnější, a bylo nutné jejich jazyk standardizovat. Americký
institut ANSI původně chtěl vydat jako standard zcela nový jazyk RDL. SQL se však prosadil jako
de facto standard a ANSI založil nový standard na tomto jazyku. Tento standard bývá označován
jako SQL-86 podle roku, kdy byl přijat.
V dalších letech se ukázalo, že SQL-86 obsahuje některé nedostatky a naopak v něm nejsou
obsaženy některé důležité prvky týkající se hlavně integrity databáze. V roce 1992 byl proto přijat
nový standard SQL-92 (někdy se uvádí jen SQL2). Zatím nejnovějším standardem je SQL3 (SQL99), který reaguje na potřeby nejmodernějších databází s objektovými prvky.
Standardy podporuje prakticky každá relační databáze, ale obvykle nejsou implementovány vždy
všechny požadavky normy. A naopak, každá z nich obsahuje prvky a konstrukce, které nejsou ve
standardech obsaženy. Přenositelnost SQL dotazů mezi jednotlivými databázemi je proto omezená.
Popis jazyka
SQL příkazy se dělí do čtyř základních skupin.
Příkazy pro manipulaci s daty
Jsou to příkazy pro získání dat z databáze a pro jejich úpravy. Označují se zkráceně DML – Data
Manipulation Language („jazyk pro manipulaci s daty“).
SELECT – vybírá data z databáze, umožňuje výběr podmnožiny a řazení dat.
INSERT – vkládá do databáze nová data.
UPDATE – mění data v databázi (editace).
DELETE – odstraňuje data (záznamy) z databáze.
EXPLAIN PLAN FOR – speciální příkaz, který zobrazuje postup zpracování SQL příkazu.
Pomáhá uživateli optimalizovat příkazy tak, aby byly rychlejší.
Příkazy pro definici dat
Těmito příkazy se vytvářejí struktury databáze – tabulky, indexy, pohledy a další objekty.
Vytvořené struktury lze také upravovat, doplňovat a mazat. Tato skupina příkazů se nazývá
zkráceně DDL – Data Definition Language („jazyk pro definici dat“).
CREATE – vytváření nových objektů.
ALTER – změny existujících objektů.
DROP – odstraňování objektů.
Příkazy pro řízení dat
Do této skupiny patří příkazy pro nastavování přístupových práv a řízení transakcí. Označují se
jako DCL – Data Control Language („jazyk pro ovládání dat“), někdy také TCC – Transaction
Control Commands („jazyk pro ovládání transakcí“).
GRANT – příkaz pro přidělení oprávnění uživateli k určitým objektům.
REVOKE – příkaz pro odnětí práv uživateli.
BEGIN – zahájení transakce.
COMMIT – potvrzení transakce.
ROLLBACK – zrušení transakce, návrat do původního stavu.
Ostatní příkazy
Do této skupiny patří příkazy pro správu databáze. Pomocí nich lze přidávat uživatele, nastavovat
systémové parametry (kódování znaků, způsob řazení, formáty data a času apod.). Tato skupina
není standardizována a konkrétní syntaxe příkazů je zavislá na databázovém systému. V některých
dialektech jazyka SQL jsou přidány i příkazy pro kontrolu běhu, takže lze tyto dialekty zařadit i
mezi programovací jazyky.
Externí odkazy
Seriál tipů a triků pro SQL
SQL – Structured Query Language – průvodce SQL
Návod pro PosgreSQL (česky)
PL/SQL
(Procedural Language/Structured Query Language) je procedurální nadstavba jazyka SQL od
firmy Oracle založená na programovacím jazyku Ada.
Pomocí PL/SQL je možné vytvářet:
uložené procedury a funkce
programové balíky (packages)
triggery
uživatelsky definované datové typy
Tato nadstavba se rozšířila a její deriváty převzaly i jiné relační databáze. Sybase a Microsoft SQL
Server mají Transact-SQL, PostgreSQL má PL/pgSQL a IBM DB2 má SQL PL. Existuje též
projekt Fyracle, jehož cílem je umožnit spouštění PL/SQL v relační databázi Firebird.
MySQL
MySQL
vyvíjí
MySQL AB
5.0.37 Enterprise
(placená), 5.0.27
(GPL) (listopad 2006)
připravovaná verze Beta 5.1.17 (únor
aktuální verze
2007)
MySQL je databázový systém, vytvořený švédskou firmou
MySQL AB. Jeho hlavními autory jsou Michael „Monty“
Widenius a David Axmark. Je považován za úspěšného
průkopníka dvojího licencování – je k dispozici jak pod
bezplatnou licencí GPL, tak pod komerční placenou licencí.
OS
typ softwaru
licence
web
multiplatformní
RDBMS
GPL nebo
komerční licence
www.mysql.org
MySQL je multiplatformní databáze. Komunikace s ní
probíhá – jak už název napovídá – pomocí jazyka SQL. Podobně jako u ostatních SQL databází se
jedná o dialekt tohoto jazyka s některými rozšířeními.
Pro svou snadnou implementovatelnost (lze jej instalovat na Linux, MS Windows, ale i další
operační systémy), výkon a především díky tomu, že se jedná o volně šiřitelný software, má
vysoký podíl na v současné době používaných databázích. Velmi oblíbená a často nasazovaná je
kombinace MySQL, PHP a Apache jako základní software webového serveru.
MySQL bylo od počátku optimalizováno především na rychlost, a to i za cenu některých
zjednodušení: má jen jednoduché způsoby zálohování, a až donedávna nepodporovalo pohledy,
triggery, a uložené procedury. Tyto vlastnosti jsou doplňovány teprve v posledních letech, kdy
začaly nejčastějším uživatelům produktu – programátorům webových stránek – již poněkud
scházet.
Přehled podporovaných vlastností:
cizí klíče (od verze 3.23 podporovány v tabulkách typu InnoDB)
transakce (od verze 3.23 podporovány v tabulkách typu InnoDB)
podpora různých znakových sad a časových pásem v datech (od verze 4.1)
poddotazy (od verze 4.1)
uložené procedury (od verze 5.0)
triggery (od verze 5.0)
pohledy (od verze 5.0)
Uložiště dat
MySQL nabízí několik typů databázových tabulek (storage engine), které se liší svými možnostmi,
použitím a způsobem ukládání dat do souborů:
MyISAM - nejpoužívanější, bez podpory transakcí
InnoDB - podpora transakcí
BerkeleyDB (BDB)
MEMORY - práci s daty v paměti
NDB Cluster - uložiště pro clusterované databáze (od verze 5.0)
ARCHIVE - komprimované tabulky, bez podpory indexů
CSV - ukládání dat v prostých textových souborech
www.mysql.org – Oficiální stránky
Český seriál o MySQL na serveru Linuxsoft
Český MySQL manuál
Visual Basic
Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Visual Basic je dialektem programovacího jazyka BASIC od společnosti Microsoft.
Výhody:
Jazyk je jednoduchý a snadno pochopitelný pro začátečníka (jako klíčová slova se obvykle
používají popisné výrazy v angličtině).
Návrh aplikací je velmi rychlý, zejména pokud se týče jednodušších databázových aplikací
a tvorby grafického uživatelského rozhraní.
Nevýhody:
U starších verzí (do 6.0) se jednalo o částečně interpretovaný jazyk, což mělo za následek
nižší výkonnost v něm napsaných aplikací. Tato nevýhoda byla odstraněna v jazyce Visual
Basic .NET, který se stejně jako všchny .NET jazyky překládá do MSIL a výkon .NET
aplikace tedy nezáleží na jazyce, v němž byla napsána.
VBScript
Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
VBScript je skriptovací jazyk Microsoft Visual Basic Scripting Edition určený pro vkládání kódu
do webových stránek a běžné skriptování ve WSH (Interpreter skriptů nazývaný Windows
Scripting Host), založený na jazyce Visual Basic. Vznik jazyka je spolu se vznikem jazyka JScript
(taktéž WSH a CScript - neplést s JavaScriptem) považován za odpověď firmy Microsoft na vznik
jazyka JavaScript — viz například
Jazyk VBS je mezi hackery oblíbený pro psaní virů (např.: "W32.LoveLetter" známý jako
"ILoveYou" a mnoho dalších), mimo jiné proto, že malé skripty lze spouštět na většině současných
verzí windows s wsh a dokáže přes VBA API (Aplikační rozhraní „Visual Basic For Aplications“)
přistupovat k velkému množství programů na počítači oběti a rozesílat se tak např. pomocí e-mailu
jejím známým a vytahovat z počítače důvěrná data.
Jazyk VBS je dobře použitelný i v kladném smyslu. Např: ve HTA Html Application. VBS je po
JavaScriptu nejpoužívanější script, hlavně díky podobnosti Visual Basicu a téměř neomezeným
schopnostem, které zajišťuje WMI. Na spuštění VBS je potřeba nainstalovaný Windows Scripting
Host. JavaScript: How Did We Get Here?. MSDN: Visual Basic Script
U starších verzí (do 6.0) se nejednalo o plně objektový jazyk a nebylo možno v něm
používat všechny techniky objektově orientovaného programování. I tato nevýhoda byla
odstraněna ve Visual Basic .NET
Velká popisnost jazyka způsobuje, že kód zapsaný ve VB je na počet znaků obsáhlejší a
méně „elegantní“, než zápis ve většině jiných jazyků (zejména v jazyce C). Na druhou
stranu, právě tato popisnost znamená, že význam kódu zapsaném ve Visual Basicu snáze
pochopí i programátor, který tento jazyk neovládá, stačí znát angličtinu.
Externí odkazy
http://www.vbasic.cz/
http://www.vbnet.cz/
Visual Basic Developer Center na MSDN
AJAX
Z Wikipedie, otevřené encyklopedie
AJAX (Asynchronous JavaScript and XML) je obecné označení pro technologie vývoje
interaktivních webových aplikací, které mění obsah svých stránek bez nutnosti jejich
znovunačítání. Na rozdíl od klasických webových aplikací poskytují uživatelsky příjemnější
prostředí, ale vyžadují použití moderních webových prohlížečů.
Tyto aplikace jsou vyvíjeny s využitím technologií:
HTML (nebo XHTML) a CSS pro prezentaci informací;
DOM a JavaScript pro zobrazování a dynamické změny prezentovaných informací;
XMLHttpRequest pro asynchronní výměnu dat s webovým serverem (typicky je užíván
formát XML, ale je možné použít libovolný jiný formát včetně HTML, prostého textu,
JSON či EBML).
Podobně jako DHTML, LAMP nebo SPA, Ajax ve skutečnosti není konkrétní jednotlivá
technologie, ale pojem označující použití několika technologií dohromady s určitým cílem.
Historie
Termín AJAX se poprvé veřejně objevil v dubnu 2005 v článku Jesse James Garretta, nazvaném
Ajax: A New Approach to Web Applications (Ajax: Nový přístup k webovým aplikacím). Myšlenky,
na kterých je AJAX založen, jsou však výrazně starší: mezi začátky lze zařadit zavedení elementu
IFRAME v Microsoft Internet Explorer 3.0 z roku 1996, elementu LAYER v Netscape Navigator 4.0 z
roku 1997 (tento element byl opuštěn na počátku vývoje Mozilly). Také Macromedia Flash od
verze 4 umožňoval komunikaci se serverem na pozadí, bez překreslení stránky.
V roce 1998 představil Microsoft novou technologii nazvanou Remote Scripting [1], ve které v
klientském prohlížeči běžel Java applet komunikující se serverem, přičemž tento aplet poskytoval
služby JavaScriptovým funkcím. Tato technika fungovala v MSIE od verze 4 i v Netscape
Navigatoru od verze 4. V páté verzi IE zavedl Microsoft objekt XMLHttpRequest, který v roce
2000 využil v novém programu Outlook Web Access, který poskytuje webové rozhraní pro přístup
k e-mailům na Microsoft Exchange Server.
Velká popularita a rozšíření AJAXu začala několika službami společnosti Google (nejdříve Gmail,
posléze Google Maps a další).
Výhody a nevýhody
Mezi výhody patří odstranění nutnosti znovunačtení a překreslení celé stránky při každé operaci,
které jsou nutné u klasického modelu WWW stránek. Pokud například uživatel klikne na tlačítko
pro udělení hlasu v nějaké anketě, celá stránka se musí znovu načíst ze serveru, třebaže se na ní jen
například aktualizují výsledky hlasování a veškerý zbytek obsahu zůstává stejný. Prostřednictvím
AJAXu proběhne odeslání hlasu uživatele na pozadí, server zašle jen ty části stránky, které se
změnily, a jen tyto části se uživateli na stránce aktualizují a překreslí. Uživatel tak má pocit
mnohem větší plynulosti práce, která se blíží běžným desktopovým aplikacím.
Z toho vyplývá také potenciál snížit zátěž na webové servery a síť obecně. Jelikož není potřeba při
každém požadavku sestavit celý HTML dokument, ale pouze provedené změny, je množství
vyměňovaných dat výrazně nižší a teoreticky to může mít příznivý vliv i na zátěž databázových
serverů či dalších backendových systémů. AJAX však naopak může zvýšit počet vyměňovaných
HTTP požadavků, třebaže přenášejí nižší množství dat tak při nevhodné implementaci zátěž
neklesne.
Mezi nevýhody patří hlavně změny v paradigmatu používání webu: webové stránky se chovají
jako plnohodnotná aplikace se složitou vnitřní logikou, nikoli jako posloupnost stránek, mezi
kterými se lze navigovat i pomocí tlačítek Zpět a Další. Moderní AJAXové aplikace jsou schopny
funkce těchto tlačítek (přinejmenším částečně) obnovit za použití různých technik (např. využití
části adresy za znakem # či pomocí neviditelných IFRAMEs).
Problémem AJAXových aplikací také může být síťová latence: potřeba komunikace přes Internet
má negativní dopady na rychlost odezvy a interaktivitu uživatelského rozhraní. Pokud uživateli
není jasně signalizováno, že aplikace zpracovává jeho požadavek (a na pozadí komunikuje se
serverem), jediné, co zaregistruje, je zpožděná reakce (mezitím se dokonce může snažit operaci
spustit znovu, neboť se domnívá, že systém jeho příkaz ignoroval).
Další nevýhodou AJAXu je nutnost používat moderní grafické prohlížeče, které podporují
potřebné technologie. (Všechny dnešní běžné prohlížeče však tyto technologie alespoň v základu
podporují.)
Externí odkazy
AJAX: Getting Started – Úvodní tutoriál na Mozilla Developer Center (anglicky)
Ajax Tool Kits – Seznam různých toolkitů pro AJAX
Ajax - teoreticky i prakticky - Začátky s Ajaxem (česky)
Ajax - návod pro začátečníky - Na začiatok jednoduchý skript (česky)
Citováno z „http://cs.wikipedia.org/wiki/AJAX“
Kategorie: Programování | World Wide Web

Podobné dokumenty

1 Identifikační údaje GYMNÁZIUM JAROSLAVA HEYROVSKÉHO

1 Identifikační údaje GYMNÁZIUM JAROSLAVA HEYROVSKÉHO kompetencí není konečná, nýbrž tvoří základ pro další celoživotní učení a orientaci v každodenním životě. Jsme si vědomi i velikosti rozsahu celé problematiky, jakož i provázanosti a spojitosti mno...

Více

ZX Spectrum + (užívateľská príručka) - Softhouse

ZX Spectrum + (užívateľská príručka) - Softhouse tzv. počítačový program. Nabízíme vám několik krátkých programů, které prověří schopnosti vašeho počítače. Vše, co v této chvíli zbývá ještě udělat, je vložit program přesně tak, jak je uvedeno v u...

Více

databáze

databáze formuláře pro vizuálně přívětivé zadávání hodnot. Uživatel si může např. nadefinovat rozložení jednotlivých vstupních polí z dané tabulky, popisky atd. • sestavy nebo též reporty – podobně jako u f...

Více

Uèební text - střední škola elektrotechnická, ostrava, na jízdárně 30, po

Uèební text - střední škola elektrotechnická, ostrava, na jízdárně 30, po Uživatel (budoucí programátor) musí zvládnout definovat své požadavky a pokud možno formulovat je v podobě vývojového diagramu. Potom by měl být schopen toto ve vybraném programovacím jazyce převés...

Více

Webový systém pro správu mapových aplikací digitálních modelů

Webový systém pro správu mapových aplikací digitálních modelů Python používá dynamickou typovou kontrolu, z čehož plyne, že proměnné mohou během vykonávání programu nabývat hodnot o různých datových typech. Při operacích je však uplatňována silná typová kontr...

Více

1 Identifikační údaje GYMNÁZIUM JAROSLAVA HEYROVSKÉHO

1 Identifikační údaje GYMNÁZIUM JAROSLAVA HEYROVSKÉHO kompetencí není konečná, nýbrž tvoří základ pro další celoživotní učení a orientaci v každodenním životě. Jsme si vědomi i velikosti rozsahu celé problematiky, jakož i provázanosti a spojitosti mno...

Více

Vývoj číselných soustav - black

Vývoj číselných soustav - black Pro počı́tánı́ v pozičnı́ soustavě je nutné znát výsledek početnı́ch operacı́ s nulou. Indičtı́ matematici patrně jako prvnı́ formulovali pravidla pro počı́tánı́ s nulou. Slovně uvedl...

Více

Počítačové programy pro správu citací výzkumníka

Počítačové programy pro správu citací výzkumníka Mendeley se osvědčuje při prozkoumávání databází stovek milionů zdrojů, které shromáždili jeho uživatelé. Při tomto prozkoumávání se přesvědčíme, kolik jiných výzkumníků zařadilo určitou práci do s...

Více