Program

C,C++,C#

Moderátori: psichac, Moderátori

ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Dátum registrácie: 18 Mar 2017, 14:55

Program

Príspevok od používateľa ondra27 » 02 Apr 2017, 13:19

17) Napište příklad osmibitové proměnné s přiřazenou hodnotou a bez přiřazené hodnoty.
18) Napište definici proměnné s názvem operand, která je v rozsahu 0 až 255 a přiřaďte do ní hodnotu 5, ale zapsanou v hexadecimální soustavě.
19) Napište příklad definice/deklarace/volání funkce s parametry a bez parametrů.

Víte prosím někdo?
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 13:22

Škola ?
Programovací jazyk ?
Pokud se jedná o jazyk C ,tak pro otázku 17) má být hodnota signed nebo unsigned ?
Nějaká sranda ,co ?
0

ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Dátum registrácie: 18 Mar 2017, 14:55

Re: Program

Príspevok od používateľa ondra27 » 02 Apr 2017, 13:53

Já vůbec nevím, dal nám to učitel který nás má na mikropočítače a je to z okruhu Vývojové prostředky jednočipových mikropočítačů
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 14:19

Co teda čekáš že ti tady někdo odpoví,když nenapíšeš ani programovací jazyk ?
0

ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Dátum registrácie: 18 Mar 2017, 14:55

Re: Program

Príspevok od používateľa ondra27 » 02 Apr 2017, 14:24

programovali jsme v MPLABU takže asi tam
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 14:28

V MPLABu může bejt C nebo asm
0

ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Dátum registrácie: 18 Mar 2017, 14:55

Re: Program

Príspevok od používateľa ondra27 » 02 Apr 2017, 14:38

dejme tomu C
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 14:55

V tom případě co platí pro otázku 17 (signed nebo unsigned) ?
0

ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Dátum registrácie: 18 Mar 2017, 14:55

Re: Program

Príspevok od používateľa ondra27 » 02 Apr 2017, 14:57

signed
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 15:32

17) char hodnota; char hodnota2 = 0;
18) unsigned char operand = 0x05;
Edit:opraveno z konstanty na proměnnou
0
Naposledy upravil/-a Sender v 02 Apr 2017, 18:40, upravené celkom 1 krát.

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Program

Príspevok od používateľa peterple » 02 Apr 2017, 16:32

odpoveď 18 je úplne mimo. Ba priam by som povedal že je to hrozná zákernosť. Podľa toho čo si myslím ako pracuje C prekladač tak od tohoto riadku v programe sa začnú diať veci ktoré začiatočník ťažko pochopí.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 16:44

To možná,ale XC8 to sežere bez problému.Tazatel určitě prošel nějakou teorií,tak by si to měl upravit podle toho co od něj učitel chce.
Ono by šlo napsat #define operand 0x05; nebo unsignet char define = 0x05;
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Program

Príspevok od používateľa peterple » 02 Apr 2017, 16:52

Nepoznám XC8. Zozrať to zožere asi každý kompilátor, ale to neznamená že to robí to čo si myslíš. Je to zákernosť a velká. Nikdy ma nenapadlo takéto niečo tak ani neviem čo by s tým urobilo napríklad gcc. Ono sa to prejaví až niekde o x riadkov ďalej. Nie na tom riadku define. Samozrejme iba za určitých okolností. Doporučujem si prečítať čo robí direktíva #define.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2561
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Program

Príspevok od používateľa maskrtnik01 » 02 Apr 2017, 17:06

Dobrý večer,

Typujem, že kde napíše unsigned, zjaví sa tam char operand = 0x05; No súhlasím s tým, že narobí to v kóde také zmeny, že začiatočník z toho bude úplne mimo. Takže p. senderovi tiež odporúčam naštudovať si direktívy preprocesora.
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 17:44

Po odzkoušení zjišťuji,že se to v každém překladači chová jinak. V XC8 to funguje správně a v Hi-Tech to nelze použít (překladač to nesežere).Další jsem zatím nezkoušel.
V případě #define to překladač chápe jako konstantu.
V případě 0x05 v unsigned i signed se jedná stále o hodnotu dec 5 (00000101)
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Program

Príspevok od používateľa peterple » 02 Apr 2017, 19:28

Ja by som očakával presne to čo napísal maskrtnik01. Čo znamená že v XC8 to funguje správne? Čo to tam teda urobilo?
Sender napísal: V případě #define to překladač chápe jako konstantu.
A čo je to to? Obávam sa že nechápeš ako pracuje direktíva #define, čo je to preprocesor a textové makro

V otázke v bode 18 išlo o to aby maturant vedel ilustrovať rozdiel medzi definíciou a deklaráciou. S direktívou #define to nemá nič spoločné,

Niečo na rozšírenie obzorov.
https://www.smnd.sk/anino/programming/c ... /kap04.htm

-- Spojený príspevok 02 Apr 2017, 18:36 --

Až teraz som si všimol že zákernosť bola vymazaná. Takže ďalšia diskusia zrejme stráca zmysel.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

OM0XA
Stály člen
Stály člen
Príspevky: 235
Dátum registrácie: 03 Okt 2012, 23:18
Bydlisko: Poprad

Re: Program

Príspevok od používateľa OM0XA » 02 Apr 2017, 19:42

tak to skus popisat, aby z toho mal nieco aj taky, ktory povodny text nevidel a zacal citat vlakno az po tvojom prispevku...
0

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2561
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: Program

Príspevok od používateľa maskrtnik01 » 02 Apr 2017, 20:15

Je to jednoduché. Pred samotnou kompiláciou .c súboru sa spúšťa tzv. preprocesor. Kde nájde direktívu DEFINE, nahradí niečo niečím (ako v textovom editore funkcia nájsť a nahradiť). Mimochodom, kde nájde direktívu INCLUDE, tam pridá obsah uvedeného súboru.

Čiže takto sa ešte dá:
#define MAX_STR_LEN 50

Kde nájde preprocesor MAX_STR_LEN, nahradí to 50kou. Ale toto už zblbne:
#define unsigned char tmp = 0;

Kde nájde preprocesor unsigned, pravdepodobne tam zapíše char tmp = 0; . A toto je už dosť zákerná skrytá chyba.
Takto sa ešte dá:

#define NUM_CHARS ('Z' - 'A')
Čiže , preprocesorom si môžeme skrátiť zápis niektorých zložitejších konštánt, ale nepoužívať na deklaráciu premenných. .
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Program

Príspevok od používateľa Sender » 02 Apr 2017, 20:21

peterple>znamená to že překladač XC8 chápe ten zápis jako konstantu s hodnotou 0x05. Schválně jsem zkoumal manuál od XC8 a dočetl jsem se ,že #define má celou řadu možností použití a způsobů zápidu.Ten kód (xdefine unsigned char neco = 0x05 ) není pro xc8 vůbec divočina,přesto že to dle standardu (jazyka c) není jak má.
Nevím nic se se tazatel učí,ale snažím se ho nějak nasměrovat.Cečkař nejsem.Rád se něco přiučím.Z mých dosavadních zkušeností s C,mám názor že je třeba se zaměřit na konkrétní kompilátor jazyka (standardy ne vždy fungují a preprocesor je u každého odlišný).To platí o pro jiný programovací jazyky.
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok