Java kalkulátor CASIO-kompatibilní 

Vždycky mě štvalo, když jsem seděl u počítače a potřeboval něco spočítat, že jsem si musel brát k ruce kalkulačku CASIO, protože program Kalkulačka, co je součástí Windows, resp. kcalc který je součástí KDE, je typickou ukázkou neergonomické aplikace. Pokud má počítač klávesnici se 104 tlačítky, je přinejmenším hloupé kalkulačku realizovat jako aplikaci se soft-buttony, do kterých se uživatel musí trefovat myší. Navíc každý trochu složitější výraz se díky absenci funkce závorek počítá poměrně obtížně a jedna paměťová buňka je mnohdy málo. Proto jsem kdysi dávno, na Vánoce 2004, jako semestrální úlohu z předmětu Algoritmizace, naprogramoval Kalkulátor v jazyku Java. Číst dále...
[ zobrazit záznam ] ( 5504 zobrazení ) trvalý odkaz související odkaz ( 3 / 19009 )
Výpočet determinantu rekurzivním algoritmem 

Už je to dlouho, co jsem objevil kouzlo rekurzivních algoritmů pro takové úkoly, jako je výpočet faktoriálu, nebo řešení úlohy hanojských věží... Tehdy jsem si řekl, že by bylo pěkné pomocí takového algoritmu počítat determinant matice, metodou rozkladu podle n-tého řádku. Včera jsem si splnil sen:
#define MAX_R 10
#include <stdio.h>

double determinant(double matice[MAX_R][MAX_R], int rozmer) {
double det=0;
double submatice[MAX_R][MAX_R];

if (rozmer<1) return 0;
if (rozmer==1) return matice[0][0];

// rozklad podle prvniho radku
for (int i=0; i<rozmer; i++) {
//vypocet submatice
for (int u=0; u<rozmer-1; u++)
for (int v=0; v<rozmer-1; v++)
submatice[u][v]=matice[u+1][v<i?v:v+1];

det += (i%2?1:-1)*matice[0][i ]*determinant(submatice, rozmer-1);
}
return det;
}

int main() {
double pole[MAX_R][MAX_R]={{1,-2,1,2,4},{3,0,-1,1,-3},{2,2,2,3,5},{-2,-2,0,5,-2},{-2,3,-1,0,-2}};
double det;
det=determinant(pole,5);
printf("Determinant je %f \n", det);
return 0;
}
Program je napsán v C99 a díky staticky definovaným polím je extrémně paměťově náročný a minimálně škálovatelný.:) Podstata řešení spočívá v postupném zjednodušování problému až na úkol spočítat determinant matice 1x1, kterýžto je roven hodnotě jediného prvku matice. Všechny větší matice jsou podle prvního řádku rozloženy na menší a menší.
[ zobrazit záznam ] ( 5143 zobrazení ) trvalý odkaz ( 3 / 17690 )
Typy tramvajových vozů 

Tak, druhý seminář je úspěšně za námi. Přítomným se omlouvám za nepřiměřenou délku, nepřítomným naopak slibuji, že se pokusím brzy zajistit záznam. Prezentaci, promítanou během semináře najdete zde.

Těším se na případné připomínky a doufám, že se mi povede někdy příště zase pokračovat, třeba seminářem o Metru...
[ zobrazit záznam ] ( 1353 zobrazení ) trvalý odkaz související odkaz ( 3 / 10073 )
Technika pražských tramvají II - pozvánka 

Po velém úspěchu prvního semináře jsem se rozhodl v úterý 4.12.2007 uspořádat volné pokračování.

Tentokrát bychom se měli podrobně podívat na jednotlivé typy tramvajových vozů. Všichni jste srdečně zváni.

Koleje Strahov - Blok 7 - suterén - 4.12.2007 20:00
http://sut.sh.cvut.cz
[ zobrazit záznam ] ( 1102 zobrazení ) trvalý odkaz související odkaz ( 3 / 11315 )
Nemožnost přepnout VT z Xorg 

Po posledním updatu jsem narazil na kuriózní problém. Nešlo přepnout virtuální terminál pomocí Ctrl+Alt+Fn ve správci přihlášení kdm a tedy nebylo možné použít textový režim k přihlášení do systému. Přitom po přihlášení do KDE to šlo...

Pak jsem zjistil, že problém nastává jenom, když má X server nakonfigurováno víc jak jedno rozložení. Moje nastavení klávesnice souboru xorg.conf vypadá takto:
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"

Option "XkbModel" "pc104"
Option "XkbLayout" "us,cz"
Option "XkbOptions" "grp_led:scroll,grp:alt_shift_toggle"
EndSection
To proto, abych nemusel měnit zvyky z Windows a mohl klávesnici přepínat kombinací Alt+Shift, kde LED Scroll lock svítí při českém rozložení...

Navíc ovšem používám applet "Rozložení klávesnice" z KDE, který mi umožňuje stabilně přepínat klávesnici, tedy pamatovat si ve které aplikaci chci jakou (v terminálu anglickou, v ooffice českou). Bohužel tento aplet neumí pouze změnit skupinu, místo toho zavolá příkaz setxkbmap a tím celou klávesnici překonfiguruje. Takže úspěšně používám dvě úrovně přepínání klávesnice, KDE mi nastaví natvrdo anglickou klávesnici, a po stisku Win+K se objeví česká vlaječka, rozsvítí se Scroll Lock a klávesnice píše česky. Z téhle české klávesnice můžu odskočit do anglické pomocí Alt+Shift, ovšem vlaječka zůstane česká, pouze zhasne Scroll Lock (Tohle zařídí zatržítko "včetně rozvržení latinky").

Takže po přepnutí KDE na českou vlaječku přepnutí VT opět nefungovalo, protože byly nakonfigurovány dvě rozložení.

Nakonec se ukázalo, že řešení problému existuje a spočívá v nahrazení balíku "x11-misc/xkeyboard-config" balíkem "x11-misc/xkbdata". Bohužel nevím, proč :(. Prostě to po téhle operaci začalo fungovat. Tak doufám, že tahle informace pomůže alespoň Gentooistům.

Jinak důvod, proč jsem se vůbec chtěl přepnout do textové konzole, je ten, že jsem chtěl vyzkoušet novou verzi patche pro ssh přihlášení z agetty :)
[ zobrazit záznam ] ( 1308 zobrazení ) trvalý odkaz související odkaz ( 3 / 17049 )

<<První <Zpět | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | Další> Poslední>>