NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Žádost o pomoc - proměnná typu char

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Pluhtík
Člen
Avatar
Pluhtík:6.2.2016 20:54

Zdravím :) ve škole mám základy programování v C# a jelikož bych chtěl po maturitě jít studovat IT (pravděpodobně Fakultu informatiky MU nebo ČVUT), tak zkouším programovat i v Javě, i když nejsem žádný expert. Zakoupil jsem si knihu Java od Elišky Roubalové a v druhé kapitole mám zadání:
"Do proměnné vykricnik typu char deklarované dříve v programu uložte znak vykřičníku pomocí kódu UNICODE (vykřičník má číslo 0021).
Bohužel mi ale program stále řádek podtrhává jako chybný, i když po kliknutí na zelenou šipku nahoře (Run main project) mi to dole píše "BUILD SUCCESSFUL (total time: 0 seconds)". Přikládám obrázky a zároveň žádám o pomoc. Podle řešení vzadu knihy mám vše tak, jak má být.
http://prntscr.com/9zvcn9
http://prntscr.com/9zvge6

Předem děkuji za Vaši pomoc :)

 
Odpovědět
6.2.2016 20:54
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovídá na Pluhtík
Atrament:6.2.2016 21:16

Máš to celé mimo tělo metody main, podívej se pořádně na ty složené závorky :)

 
Nahoru Odpovědět
6.2.2016 21:16
Avatar
Pluhtík
Člen
Avatar
Pluhtík:6.2.2016 21:27

Díky za upozornění, očividně jsem trochu hrr a ani jsem si nepřečetl, cože to nahoře vlastně je, a kam že to mám psát :D

takhle je to prosím správně?

http://prntscr.com/9zvwou

Po kliknutí na "Run main project" by se nic stát nemělo, že? Alespoň podle mých zkušeností ze C#, protože jsem v podstatě jen nadeklaroval proměnné a přiřadil jim hodnoty, nezadal jsem ale příkaz, aby se ty hodnoty někde zobrazily, říkám to správně?

 
Nahoru Odpovědět
6.2.2016 21:27
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Atrament:6.2.2016 21:38

Jo takhle je to lepší. Nic nikde nevypisuješ, takže po spuštění se nemá co stát, 'program' prostě proběhne a skončí.

 
Nahoru Odpovědět
6.2.2016 21:38
Avatar
Pluhtík
Člen
Avatar
Pluhtík:6.2.2016 22:15

Děkuji za pomoc :) zítra se vrhnu na další kapitolu :)

 
Nahoru Odpovědět
6.2.2016 22:15
Avatar
Pluhtík
Člen
Avatar
Pluhtík:12.2.2016 22:31

Zdravím, tak jsem se dnes dostal k další kapitole a opět jsem narazil na něco, čemu nerozumím. Jinak pro vysvětlení: knihu používám, protože je poněkud bohatší na teorii než tento web, určitě po ní zkusím také výuku Javy zde na webu on-line, a podle toho, co mi bude vyhovovat víc, si vyberu, jakým způsobem budu pokračovat v samostudiu :)
Takže v knize je napsané:

Logické operátory
Na proměnné typu boolean nebo na výrazy, jejichž výsledkem je logický typ, lze aplikovat i logické operátory. Základními operátory jsou logický součin (konjunkce), logický součet (disjunkce) a negace. Operátor negace se zapisuje jako vykřičník před proměnnou či výrazem a obrací jeho hodnotu, z pravdy na nepravdu a opačně.
Příklad:
boolean lez = false;
boolean pravda = !lez;

Co nechápu je vlastně jen ten poslední řádek. Pokud to chápu správně, tak proměnná nazvaná "lez" (na prvním řádku) a má "hodnotu" (nevím, jak lépe to vyjádřit, prosím o radu) "false", zatímco proměnná nazvaná pravda má hodnotu pravda, tudíž "!lez". **Nechápu ovšem, proč je to napsané v češtině, jak si s tím dokáže program poradit, proč tam není "!false"? **

 
Nahoru Odpovědět
12.2.2016 22:31
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Atrament:12.2.2016 22:44

Proměnná pravda nemá hodnotu pravda, ona se tak prostě jmenuje :) A přiřadí se do ní !lez to znamená not hodnota promenné lez. Protože na předchozím řádku byla tato hodnota nastavena na false, tak do promenné pravda tak přiřadíš !false, takže true.

 
Nahoru Odpovědět
12.2.2016 22:44
Avatar
tomisoka
Tvůrce
Avatar
Odpovídá na Pluhtík
tomisoka:12.2.2016 22:44

Programu je naprosto jedno jaký jazyk(komunikační) je používán. Pro něj je to jen název proměnné, který ani nemusí dávat smysl.


boolean pravda = !lez;

toto do proměnné "pravda" dá znegovanou "lez", funguje i když "lez" je 'true'.


Nebylo by lepší založit nové vlákno?

 
Nahoru Odpovědět
12.2.2016 22:44
Avatar
Pluhtík
Člen
Avatar
Pluhtík:12.2.2016 22:56

Buď jste špatně pochopili moji otázku, nebo já špatně pochopil vaše odpovědi.

Vím, co znamená "!lez", znamená to v podstatě "pravda".
Moje otázka zní, proč je tam "!lez" a ne "!false", protože to "!lez! přece není název, ale hodnota a ta programu přece smysl dávat musí, nebo ne? A jestliže to je v češtině, ta hodnota, tak to program nepřečte, nebo se mýlím?

Nechtěl jsem zakládat nové vlákno, ať tu nespamuji, ale ok, příště to udělám.

Editováno 12.2.2016 22:57
 
Nahoru Odpovědět
12.2.2016 22:56
Avatar
Odpovídá na Pluhtík
Michael Škrášek:12.2.2016 22:58

lez je proměnná kterou jsi definoval na předchozím řádku jako false, ta potom vrací HODNOTU false a ty ji neguješ na true a ukládáš do pravda ...

Editováno 12.2.2016 23:00
Nahoru Odpovědět
12.2.2016 22:58
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Pluhtík
Člen
Avatar
Pluhtík:12.2.2016 23:13

Aha, konečně :) děkuji, chápu :)

 
Nahoru Odpovědět
12.2.2016 23:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.