Portál AbcLinuxu, 11. května 2024 01:07


Dotaz: Úkol programovani

13.3.2019 12:17 Karel
Úkol programovani
Přečteno: 1179×
Odpovědět | Admin
Příloha:
Zdravím, mám problém, který se mi nedaří vyřešit. Jde o první příklad na fotce. Výpis ascii tabulky pomocí hexadecimal. Vůbec nevim jak na to, proto vás prosím o radu. Děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.3.2019 13:47 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Programovaci jazyk?
13.3.2019 14:26 Karel
Rozbalit Rozbalit vše Re: Úkol programovani
Lisp
13.3.2019 13:57 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proste, suradnice suradnice v tabulke/matice nebudes indexovat v desiatkovej, ale sestnaskovej. 0 - 15. Algoritmus je taky isty ako pri desiatkovej. Len vypis nebudes robit v desiatkovej, ale v hexa (alebo napisel funkcii, kt. bude desiatkove cislo prevadzat na hexa) a zalomovat riadok budes vzdy za ((nasobkom 16) - 1) a nie ((nasobkom 10) - 1).
13.3.2019 14:14 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aby ti to sprirodzenelo. Tak si predstav ze ratas v 4-kovej sustave. Tj. mozes popisovat stavmi 0 az 3. Ak mas 5 rozkov, tak zapisat 1 cifrou nevies, tak cislo musis zapisat 2 ciframi, tj. 10(4). A kus si predstavit, ze v takom svete existujes. Mozes aj v 3-kovej sustave, alebo 5-kovej. Najprirodzenejsia nam je 10, lebo s nou pocitame.
13.3.2019 18:21 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Úkol programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co je to "horní polovina tabulky ASCII"? Pokud vím, žádnou horní polovinu nemá.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
13.3.2019 18:36 MadCatX | skóre: 28 | blog: dev_urandom
Rozbalit Rozbalit vše Re: Úkol programovani
Myslí se tím znaky s kódem 128 a výš, které se např. těm, co mají terminál nastavený v UTF-8 kódování vůbec nezobrazí.
13.3.2019 18:50 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
$ echo $LANG
sk_SK.UTF-8
dusan@notebook:~$ echo -e "\x99"
�
$ 
Nezobrazi? Zobrazi!
13.3.2019 20:53 MadCatX
Rozbalit Rozbalit vše Re: Úkol programovani
Zobrazí se jen zástupný znak neplatného code pointu, což nesplňuje zadání, i když je kód samotný napsaný správně. Navíc dost pochybuju, že ten otazníček zobrazí všechny terminály či editory stejně, pokud vůbec. Tyhle školní úlohy fakt žeru.
13.3.2019 22:23 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Splna zadanie, lebo v zadanie je:
… vo vypise prislusne znaky odpovedajuce hornej polovice tabulky ASCII …
Ked uz tak chces pedantne splnit zadanie. ;)
13.3.2019 22:13 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Úkol programovani

Tak tohle^^^ naprosto zjevně nefunguje; takovému znaku se někdy (v jiných, zpravidla webových kontextech) říká tofu. :-P

S UTF-8 locale je totiž kompatibilní jenom spodní polovnia ASCII tabulky. V horní polovině číhá spousta identifikátorů rozšiřujících tabulek pro vícebytové symboly (2 až 6 bytů). Takže pokud se člověk trefí někam nad 128, ale pak dodá jenom jeden byte, je výsledek (až na pár výjimek) celkem nedefinovaný.

Co tedy s tou horní polovinou? Inu, takhle se třeba napíše v UTF-8 terminálu Ř a ř (obojí dvoubytové znaky):

echo -e '\xc5\x99'
echo -e '\xc5\x98'

Aby se dala smysluplně využívat horní polovina "ASCII" tabulky k psaní nějakých jednobytových znaků, musel by se člověk vrátit do doby před téměř 20 lety a přepnout si systémové locale zpátky na 8-bitový "ne-UTF-8" terminál. Například iso-8859-2 by v horní polovině tabulky mělo znaky pro středoevropské jazyky, iso-8859-1 tam bude mít znaky pro západoevropské jazyky atd.

Což s sebou nese notoricky známou otázku, co si počít, chci-li mít v jednom textovém souboru český text a jeho francouzský překlad. Proto by se mělo používat kódování UTF-8 a nezadávat nesmyslné (a od dnešní reality odtržené) úkoly, které počítají s 8-bitovou tabulkou ASCII.

13.3.2019 22:34 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Prave naopak. Takmer skoro ziadne (1 alebo 2, presne si uz nepametam, viac ako 5 urcite nie) sa v UTF-8 z hornych znakov ANSII nepouzivaju. Nastuduj si.

Nemusis sa vracat do minulosti, staci si v terminali prepnut Zmenit kodovanie znakov a otvorit si novu kartu. Locale nestaci resp. nie je potrebne.

Ukazka pre ISO-8859-2.
echo -e "\xfa"
ú
13.3.2019 23:38 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Úkol programovani
Jenže v úkolu je napsáno že to má být "horní polovina ASCII" a ta není definována. (ANSI je normalizační institut) Co by měla být "horní polovina"? Extended ASCII je jak buchtiček. IBM CP 437 jako na původním PC DOS? CP 1250 z Windows (tohle možní myslí autor testu)? nebo ISO 8859-1 nebo 2?
14.3.2019 07:52 luky
Rozbalit Rozbalit vše Re: Úkol programovani
V ukolu je napsano, ze ji ma zapsat do souboru a obsah souboru bude vzdy stejny, nezavisle na tom, jestli ho interpretuje jako ISO-8859-1, ISO-8859-2 atd.
14.3.2019 01:50 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Úkol programovani

Prý nastuduj si. :-D :-D :-D Jo. Tak ty si to nastuduj jako první, protože zjevně máš v hlavě zelí, pokdu jde o UTF-8.

Svou "ukázkou" přesně potvrzuješ to, co jsem původně psal. Díky. Ano, když se přepneš do dávné minulosti, do mnou zmiňovaného iso-8859-2, budeší mít (dokonce) smysluplné znaky v horní polovině tabulky (na rozdíl od té kraviny, kterou jsi sem postnul původně). (Ještě štěstí, že se tady nedají editovat příspěvky.)

(Navíc podotýkám, že říkat si anonymně debian+ je opravdu úsměvné, s ohledem na to, jaká ubohá sračka debian je. Ale to jen tak na okraj, mimo téma a tak podobně.)

14.3.2019 22:49 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Jo. Kukol som si wiki. Zle som si zapametal.
Bajty s hodnotou 0xFE a 0xFF nejsou nikdy použity
zdroj wiki

k zatvorke: To ze nieco je zle, neznamena ze je vsetko zle. A to ze tam backend (letmo som kukol link) neni dobry alebo najlepsi, my je jedno. Ja pouzivam forend. Instalujem a pouzivam. Neprispievam. A z uzivatelskeho hladiska mi vyhovuje - rolovacie distro (testing) s uplne nie natuningovanimi novinkami ale zas nie velmi starymi. Siroka podpora (ak nie je s Debianom, tak je kompatibilna s Ubuntu). Najpouzivanejsie na servery. (A systemd mi nevadi, lebo len pouzivam. Neforkujem distro, atd. A max. ak pridam nieco spustat pri starte.)
15.3.2019 16:36 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Úkol programovani
Je tady patrný rozdíl mezi Unicode (hodnoty 0xFE a 0xFF jsou platnými znaky) a UTF-8 (bajty 0xFE a 0xFF se v souboru nesmí vyskytnout).
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
13.3.2019 18:46 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Mas zakladnu (do 128) a rozsirenu (129-255). Zakladna je vsade rovnaka, rozsirena podla toho, aku mas lokalizaciu (CZ, SK, atd.).

Na ceskej wiki mas, ze prvotna ASCII nemala ani male pismena. Takze zalezi, ako zadefinujes pojem.
13.3.2019 22:04 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Úkol programovani
Když už, tak 0-127. Od 128 výš to už není ASCII.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
13.3.2019 22:06 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Pravda.
7.5.2019 11:54 dword
Rozbalit Rozbalit vše Re: Úkol programovani
ASCII tabulka samozrejme horni polovinu ma, stejne jako vsechno ostatni co lze rozelit na poloviny. Horni polovina ASCII tabulky jsou znaky 0x40 - 0x7F.

To zadani fakt psal idiot... :-D Vzdyt prave vysadou ASCII tabulky je, ze resi jen prvnich 128 znaku a pak dalsi tentokrat ale uz narodni kodovaci tabulky tuto puvodni ASCII rozsiruji o dalsi znaky.
13.3.2019 20:30 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Úkol programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
FAQ
13.3.2019 22:11 debian+
Rozbalit Rozbalit vše Re: Úkol programovani
Vůbec nevim jak na to, proto vás prosím o radu.
Nepytal zadanie. Tak mu nevsuvaj nieco, co sam realne nevykonal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.