Proměnná

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
O proměnné v programování pojednává článek Proměnná (programování).

Proměnná je v logice, matematice a programování způsob symbolické reprezentace objektů, který umožňuje zcela abstraktní manipulaci s nimi. Proměnná zastupuje libovolný myslitelný objekt z dané třídy. Manipulace s proměnnými a vztahy pro ně platné mohou být chápány jako manipulace s libovolnými objekty resp. vztahy platné pro všechny objekty. Pojem proměnné vznikl v matematice při řešení algebraických rovnic, až v moderní době se rozšířil i do jiných oborů.

V logice[editovat | editovat zdroj]

V matematické logice je pojem proměnné základem veškeré syntaxe. Formule jsou definovány jako jisté výrazy obsahující proměnné. Platnost dané formule v nějakém modelu pak závisí na tom, jaké je zvoleno ohodnocení proměnných. Pro každé takové ohodnocení jsou proměnné interpretovány jako nějaké objekty příslušného modelu a formule v tomto ohodnocení platí, platí-li její interpretace o těchto objektech (podrobněji viz Tarského definice pravdy).

V matematické logice jsou i proměnné považovány za objekty - ovšem vyšší úrovně než objekty zkoumaných struktur. Každá proměnná je z tohoto hlediska symbol. Obvykle se postuluje, že proměnných existuje nekonečně spočetně mnoho a jsou tvaru v_0,\,v_1,\,\ldots. Protože přesné rozlišení, která proměnná se v dané formuli nachází, by jednak vedlo k technickým potížím a navíc je z hlediska zkoumané teorie zcela irelevantní, dochází často k poněkud absurdnímu jevu, kdy se používají "proměnné pro proměnné". Takovým použitím může být například věta: "Nechť \varphi(x) je formule a x je její jediná volná proměnná." Zde x formálně vzato není proměnná (není tvaru v_i pro nějaké přirozené i), slouží pouze jako zástupný symbol.

Pojem proměnné může být ještě více formalizován. K tomu dochází při tzv. formalizaci logické syntaxe v aritmetice. Každá proměnná je chápána jako dvojice znaků, z nichž první je písmeno v a druhý znak je přirozené číslo. Takovéto dvojici znaků je pak jednoznačně přiřazeno přirozené číslo, které je jejím kódem. Toto číslo se nazývá „formální proměnná“. Podobným způsobem lze zakódovat celou základní logickou syntaxi. Tento postup má zcela fundamentální význam v celé matematické logice - jeho užitím lze dokázat tzv. Gödelovy věty o neúplnosti ale i mnohá jiná zajímavá tvrzení.

V matematice[editovat | editovat zdroj]

V matematice se proměnné používají v mnoha různých kontextech a v každém z nich mají trochu odlišný význam.

Při formulaci obecných tvrzení[editovat | editovat zdroj]

Jedním z klíčových použití proměnné v novodobé matematice, je její označovací funkce, která hraje roli při formulaci obecných tvrzení a jejich důkazech. V tvrzeních, která platí pro libovolné objekty z daného oboru, jsou tyto objekty reprezentovány proměnnými, což vede k mnohem přesnějšímu, přehlednějšímu a kratšímu vyjádření.

Například v tvrzení: Pro každá dvě přirozená čísla n,k taková, že n\geq k, platí {n \choose k}={n \choose n-k}. (pro význam viz kombinační číslo) je uvedená rovnost formulována pomocí proměnných. Věta, která rovnosti předchází, pouze vysvětluje, z jakého oboru lze za tyto proměnné dosazovat objekty. Pojem proměnné je při formulaci tohoto jednoduchého tvrzení zcela podstatný. Pokud bychom se totiž chtěli obejít bez něj, dalo by nám to o poznání více práce a i pro případného čtenáře by bylo pochopení podstaty tohoto tvrzení daleko obtížnější: Mějme dvě přirozená čísla, první z nich větší nebo rovné druhému. Vynásobme všechna kladná přirozená čísla menší nebo rovných než první číslo. Výsledek podělme součinem všech kladných přirozených čísel menších nebo rovných než druhé číslo a získaný výsledek opět podělme, nyní součinem všech přirozených čísel menších nebo rovných než rozdíl původních dvou čísel. Takto získaný výsledek je roven číslu, které vypočítáme následujícím způsobem. (… na tomto místě by bylo obdobné slovní vyjádření pravé strany uvedené rovnice …) Jak se díky proměnným zkrátí důkaz uvedeného tvrzení, jistě není třeba zdůrazňovat.

Uvedený příklad rovněž naznačuje další důležité použití proměnných v matematice, a to při vytváření vzorců.

Ve vzorcích[editovat | editovat zdroj]

Důležitou roli hraje použití proměnných ve vzorcích. Vzorce by bez proměnných nemohly vůbec existovat. Podobně jako v předchozím případě vede užití proměnných ve vzorcích k výraznému zkrácení zápisu, navíc umožňuje symbolickou manipulaci se vzorci, díky níž je možné pracovat v matematice na jisté úrovni „bezmyšlenkovitě“, jen na základě naučeného.

Například jsou-li zadány dvě funkce předpisy: f(x,y)=\frac{x^2y+y}{y^3},\, g(x,y)=\frac{y^3}{xy}, vidíme ihned díky naučené schopnosti symbolické manipulace, že f(x,y)\cdot g(x,y) =\frac{x^2+1}{x}. Pokud bychom výpočet funkcí f a g pro vstupy x,y zadávali slovně, jistě bychom takto rychle hodnotu jejich součinu nevyjádřili.

Jako neznámá[editovat | editovat zdroj]

Související informace naleznete také v článku Neznámá.

Použití proměnných v algebře při řešení rovnic je nejstarším užitím tohoto pojmu v celé matematice. Je dokonce tak podstatné, že proměnná užívaná v tomto kontextu má svůj vlastní název - neznámá. Počátky tohoto používání sahají k perskému matematikovi Al-Chorezmímu a řeckému Diofantovi.

Princip tohoto použití spočívá v jednoduché myšlence. Je-li dána nějaká algebraická rovnice, či soustava rovnic, která má být vyřešena, předpokládá se, že toto řešení existuje. Tedy pro nějaké číslo (jehož hodnota není ovšem zatím známa) platí daná rovnost či několik rovností. Je-li tomu tak, je možné s tímto číslem pracovat zcela stejným způsobem, jako kdybychom jeho hodnotu znali. Různými úpravami původní rovnosti pak buďto dostaneme vyjádření neznámého čísla jako jisté známé číselné hodnoty nebo zjistíme, že takové číslo nemůže existovat.

Například je-li úkolem najít číslo, jehož trojnásobek zvětšený o jedničku je roven sedmi, předpokládáme, že toto číslo existuje a označíme ho x. Pak pro x platí: 3x+1=7 a po odečtení jedničky od obou stran a následném vydělení obou stran třemi, získáme rovnost x=2. Tedy hledané číslo skutečně existuje a je to číslo 2.

Vysvětlující proměnné[editovat | editovat zdroj]

Vysvětlující (nezávisle) proměnné jsou proměnné v regresním modelu, jejichž chováním se vysvětluje chování závisle proměnné Y. Tyto proměnné vystupují v modelu jako příčinné proměnné, to znamená, že v důsledku jejich změny se mění vysvětlovaná proměnná. Jedná se tedy o proměnné na pravé straně regresní funkce a většinou je označujeme symbolem X, Z apod.

Vysvětlované (závisle) proměnné jsou proměnné v regresním modelu, jejichž chování se snažíme vysvětlit, popsat matematickou křivkou. Tyto proměnné vystupují v modelu jako výsledek působení tzv. vysvětlujících proměnných. Jedná se tedy o proměnné na levé straně regresní funkce a většinou je označujeme symbolem Y.

V programování[editovat | editovat zdroj]

Imperativní programování[editovat | editovat zdroj]

V imperativním programování je proměnná „úložiště“ informace (tedy vyhrazené místo v paměti - v některých jazycích se ovšem v průběhu výpočtu může místo, kde je proměnná uložena, měnit). Proměnná nebo (v beztypových jazycích) její hodnota má typ. Mezi nejčastější typy patří:

  • celé číslo - často je několik typů s různou maximální velikostí
  • znak - často ovšem znak patří mezi celočíselné proměnné
  • "reálné" číslo - číslo s pohyblivou řádovou čárkou - opět může být několik typů s různou maximální velikostí a přesností
  • řetězec (znaků)
  • pole, někdy i asociativní
  • struktura nebo objekt
  • ukazatel - obvykle může ukazovat na kterýkoliv z ostatních typů nebo na funkci

Mezi některými typy je možné převádět automaticky. Pole, struktury a objekty obsahují další „úložiště“, která opět mají nějaký typ, a lze je používat podobně jako proměnné.

Proměnné se používají ve vzorcích podobných těm matematickým, ale s odlišným významem: na jedné straně vzorce (téměř vždy pravé) je výraz, ve kterém mají všechny proměnné hodnotu. Tento výraz se vyhodnotí a výsledná hodnota (pokud má správný typ, jinak se jedná o chybu) se uloží do levé strany. Na levé straně je nejčastěji přímo proměnná, pokud se jedná o výraz musí být jeho výsledkem položka pole, cíl ukazatele nebo podobné označení „úložiště“.

Zatímco matematické proměnné bývají obvykle jednopísmenné, v programování může mít název proměnné libovolnou délku (teoreticky - překladače mívají limity) a je doporučeno používat názvy vystihující účel proměnné.

Deklarativní programování[editovat | editovat zdroj]

V deklarativním programování je proměnná bližší matematickému pojetí. Program obsahuje soustavu rovnic, ve které proměnné vystupují a z teoretického hlediska není nutné se zabývat tím, které proměnné už mají hodnotu a které jsou ještě neznámé. V praxi ovšem může pořadí či tvar rovnic ovlivnit dobu výpočtu.

Analogie v běžné řeči[editovat | editovat zdroj]

Některé konstrukce mající všechny důležité aspekty proměnných se užívají i v běžné řeči. Jedním z příkladů je zkrácené vyjadřování obecných tvrzení. Například, ve větě "Dřevo hoří." je možné chápat výraz "dřevo" jako proměnnou, neboť ve skutečnosti nic jako dřevo neexistuje. Toto slovo hraje pouze roli zástupce všech skutečných dřevěných předmětů. Uvedená věta pak vyjadřuje skutečnost, že každý myslitelný dřevěný předmět je hořlavý.

Někdy se také užívá výrazů velmi se podobajících proměnným, aby bylo možno v krátkosti sdělit informaci, která by ve své původní podobě byla neúměrně dlouhá. Například při popisu konverzace dvou osob, které jsou obě mluvčímu neznámé, si mluvčí obvykle zavede pro tyto osoby nějaké zkrácené označení, aby je mohl ve své výpovědi snáze identifikovat.

Související články[editovat | editovat zdroj]