A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Paradigma | procedurální (imperativní), strukturovaný |
---|---|
Autor | Ken Thompson a Dennis Ritchie |
Typová kontrola | beztypovost |
Ovlivněn jazyky | BCPL |
Ovlivnil jazyky | C |
B je programovací jazyk odvozený od jazyka BCPL. Autory jsou Ken Thompson a Dennis Ritchie. Jazyk B je předchůdcem velmi populárního jazyka C.
Popis jazyka
Jazyk B byl vytvořen hlavně pro systémové programování. Programovalo se v něm jednodušeji než v Jazyce symbolických adres, ale kód byl skoro stejně efektivní. Ken Thompson odstranil některé prvky z BCPL, které mu připadaly zbytečné.
B má pouze jeden datový typ: slovo. Většina operátorů jako s ním pracují jako s celým číslem, ale některé ho interpretují jako adresu v paměti počítače. Jazyk B nepodporuje desetinná čísla. Komentáře začínají /*
a končí */
.
R-hodnoty a l-hodnoty
R-hodnota je konstantní hodnota, která nemůže stát na levé straně přiřazení. Je to například volání funkce nebo číselná konstanta. L-hodnota je hodnota, která se smí měnit, může tedy stát na levé i pravé straně přiřazení (může r-hodnotu kdykoli nahradit). Je to proměnná, nebo výsledek operátoru *
. Operátoru *
předáváme r-hodnotu, kterou interpretuje jako adresu v paměti a vrátí l-hodnotu: proměnnou na té adrese. Operátoru &
naopak předáme l-hodnotu a on vrátí r-hodnotu: adresu té l-hodnoty.
Příkazy
Blok: {
příkazy oddělené středníky }
.
Podmínka: if(
r-hodnota(podmínka))
příkaz/blok else
příkaz/blok. Větev else
je nepovinná.
Příkaz goto: goto
r-hodnota(očekává se návěstí).
Příkaz switch:
switch(r-hodnota)
{
case konstanta1:
/*............*/
case konstanta2:
/*............*/
default:
/*............*/
}
Cyklus while: while(
r-hodnota(podmínka))
příkaz/blok.
Příkaz break: break
. Slouží k vyskočení z cyklu while.
Příkaz return: return
r-hodnota(nepovinné). Ukončí funkci. Pokud se mu předá r-hodnota, bude to návratová hodnota té funkce.
R-hodnota ukončená středníkem je příkaz.
Pokud před středník nic nenapíšeme, je to prázdný příkaz. Nemá žádný efekt.
Deklarace proměnných
Paměťové třídy
Externí
Proměnná je alokována před spuštěním programu a je dostupná ve všech funkcích. Deklaruje se: extrn proměnná1, proměnná2, ...
.
Automatická
Proměnná je alokována v nějaké funkci a je dostupná jen v té funkci (než ta funkce skončí). Deklaruje se: auto proměnná1, proměnná2, ...
.
Vektor
Podobný poli z C a jiných jazyků. Deklaruje se: auto jméno
. Velikost vektoru bude konstanta+1
.
Interní
Proměnná je alokována před spuštěním programu a je dostupná jen v jedné funkci. Deklaruje se tak, že se použije ve funkci proměnná, která ještě nebyla deklarována jako externí nebo automatická. Interní proměnné se používají hlavně pro návěstí.
Definice externí proměnné
Jednoduchá
Syntaxe: proměnná
, nebo proměnná hodnota
. První způsob proměnnou inicializuje na nulu, druhý proměnnou inicializuje na hodnotu hodnota
.
Vektorová
Syntaxe: proměnná hodnota1, hodnota2, ...
. Inicializuje proměnnou na l-hodnotu: začátek externího vektoru. Vektor bude mít velikost jako vyšší z: konstanta+1
a velikost v inicializačního seznamu(hodnota1, hodnota2, ...
). Pokud není zadána konstanta, je to totéž, jako když se zadá nula. Pokud má inicializační seznam menší velikost než konstanta+1
, budou některé prvky vektoru neinicializované (budou mít nedefinovanou hodnotu).
Definice funkce
Syntaxe: název(parametry) blok
.
Příklad:
min(a, b) /*Funkce vrátí menší číslo*/
{
if(a<b)
{
return a;
}
else
{
return b;
}
}
Znaky
Jsou uzavřeny v jednoduchých uvozovkách. V jedné proměnné lze uchovávat až 4 znaky.
Příklad:
auto a;
a='Ahoj';
Textové řetězce
Jsou uzavřeny v uvozovkách. Textový řetězec je základ vektoru znaků (v jednom prvku vektoru jsou 4). Jsou ukončeny znakem s escape sekvencí *e
.
Znak | Význam |
---|---|
*0 | null |
*e | konec souboru nebo řetězce |
(* | { |
*) | } |
*t | tabulátor |
** | * |
*' | ' |
*" | *" |
*n | nový řádek |
Vstup a výstup
Funkce getchar
načte vrátí jeden načtený znak. Funkce putchar
vypíše znak, který je jí předán a vrátí ho. Funkce getstr
načte do řetězce, který je jí předán celý řádek a vrátí ho. Funkce putstr
vypíše řetězec, který jí předán.
Funkce printf
přebírá 1 až 11 parametrů. První parametr je formátovací řetězec. Formátovací řetězec se vypíše, ale některé dvojice znaků se nahradí dalšími parametry funkce.
Dvojznak | Nahrazení |
---|---|
%c | znak |
%d | číslo |
%o | číslo v osmičkové soustavě |
%s | řetězec |
%% | % |
Ukázka kódu
main()
{
extrn a, b, c; /* Externí proměnné */
putchar(a); /* "hell" */
putchar(b); /* "o, w" */
putchar(c); /* "orld" */
putchar('!*n'); /* "!" a konec řádku */
}
a 'hell'; /* Definice externích proměnných */
b 'o, w';
c 'orld';
Jednoduché počítání:
main() /*Tento program vypíše součet a+b*/
{
auto a, b, soucet; /* Vytvoření proměnných */
a = 1;
b = 2;
soucet = a+b; /* Součet */
putnumb(sum); /* Výpis */
}
Externí odkazy
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antény
Chemické zdroje elektriny
Chladenie v elektrotechnike
Elektrická sústava automobilu
Elektrická trakcia
Elektrické prístroje
Elektrické súčiastky
Elektrické spotrebiče
Elektrické stroje
Čítanie (elektrotechnika)
Činný výkon
Štatistická dynamika
Živý vodič
Admitancia
Antiparalelné zapojenie
Asynchrónny motor
Blúdivý prúd
Bočník (elektrotechnika)
Diak (polovodičový prvok)
Displej s kvapalnými kryštálmi
Elektrická inštalácia
Elektrická rezonancia
Elektrická sila
Elektrická vodivosť
Elektrické zariadenie
Elektrický obvod
Elektrický zvonec
Elektroenergetika
Elektromer
Elektrometer
Elektromobil
Elektromotor
Elektromotorické napätie
Elektrotechnický náučný slovník
Elektrotechnika
Elektrotechnológia
Fázor
Faradayova klietka
Frekvencia (fyzika)
Graetzov mostík
Impedancia
Indukčnosť
Induktancia
Istič
Izolácia (elektrotechnika)
Izolant
Jadro vodiča
Jednobran
Jednosmerný prúd
Joulovo teplo
Katóda
Koaxiálny kábel
Kompenzácia účinníka
Konduktometria
Konektor (elektrotechnika)
Korónový výboj
Lanko (elektrotechnika)
Leptanie
Logické hradlo
Magnetická susceptibilita
Magnetizácia (veličina)
Merný elektrický odpor
Mobilné zariadenie
Napájací zdroj
Napäťový chránič
Napäťový násobič
Nortonova veta
Odpínač
Odpojovač
OLED
Olovený akumulátor
Paralelné zapojenie
Peltierov článok
Plošná hustota elektrického prúdu
Poistka (elektrotechnika)
Posuvný prúd
Prúdový chránič
Prenosové médium
Prieletový klystrón
Primárny elektrochemický článok
Reaktancia
Rekuperácia (dopravný prostriedok)
Relé
Reproduktorová výhybka
Rezistancia
Rozhranie (interface)
Sériové zapojenie
Seebeckov jav
Sekundárny elektrochemický článok
Settopbox
Skrat
Sonar
Spínač
Spínaný zdroj
Straty v mikropásikových vedeniach
Striedavý prúd
Stupeň ochrany krytom
Svetelná výbojka
Symetrizačný člen
Technická normalizácia
Tepelné relé
Tepelne vodivostný detektor
Termočlánok
Théveninova veta
Transformátor
Transformátor s fázovou reguláciou
Trojfázová sústava
Tuhá fáza (elektronika)
Tyratrón
Usmerňovač (elektrotechnika)
Uzemnenie
Uzol (vodiče)
Vírivý prúd
Výbojka
Varistor
Ventilátor
Vodič (elektrotechnika)
Voltov stĺp
Vstavaný systém
Zásuvka (elektrotechnika)
Zdroj (elektrotechnika)
Zisk antény
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk