Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Program

Program

C,C++,C#

Moderátori: psichac, Moderátori

Program

Odoslaťod 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?
ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Založený: 18.03.2017
Karma: 0

Re: Program

Odoslaťod 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 ?
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1

Re: Program

Odoslaťod 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čů
ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Založený: 18.03.2017
Karma: 0

Re: Program

Odoslaťod Sender » 02 Apr 2017, 14:19

Co teda čekáš že ti tady někdo odpoví,když nenapíšeš ani programovací jazyk ?
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1

Re: Program

Odoslaťod ondra27 » 02 Apr 2017, 14:24

programovali jsme v MPLABU takže asi tam
ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Založený: 18.03.2017
Karma: 0

Re: Program

Odoslaťod Sender » 02 Apr 2017, 14:28

V MPLABu může bejt C nebo asm
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1

Re: Program

Odoslaťod ondra27 » 02 Apr 2017, 14:38

dejme tomu C
ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Založený: 18.03.2017
Karma: 0

Re: Program

Odoslaťod Sender » 02 Apr 2017, 14:55

V tom případě co platí pro otázku 17 (signed nebo unsigned) ?
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1

Re: Program

Odoslaťod ondra27 » 02 Apr 2017, 14:57

signed
ondra27
Okoloidúci
Okoloidúci
Príspevky: 12
Založený: 18.03.2017
Karma: 0

Re: Program

Odoslaťod Sender » 02 Apr 2017, 15:32

17) char hodnota; char hodnota2 = 0;
18) unsigned char operand = 0x05;
Edit:opraveno z konstanty na proměnnou
Naposledy upravil Sender dňa 02 Apr 2017, 18:40, celkovo upravené 1 krát.
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1

Re: Program

Odoslaťod 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í.
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1384
Vek: 50.66
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 38

Re: Program

Odoslaťod 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;
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1

Re: Program

Odoslaťod 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.
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1384
Vek: 50.66
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 38

Re: Program

Odoslaťod 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.
maskrtnik01
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 436
Vek: 20.67
Založený: 20.07.2010
Bydlisko: okolie KE
Karma: 2

Re: Program

Odoslaťod 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)
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1

Re: Program

Odoslaťod 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/saloun/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.
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
peterple
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1384
Vek: 50.66
Založený: 25.06.2013
Bydlisko: Krajné
Karma: 38

Re: Program

Odoslaťod 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...
OM0XA
Stály člen
Stály člen
Príspevky: 191
Založený: 03.10.2012
Bydlisko: Poprad
Karma: 2

Re: Program

Odoslaťod 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. .
maskrtnik01
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 436
Vek: 20.67
Založený: 20.07.2010
Bydlisko: okolie KE
Karma: 2

Re: Program

Odoslaťod 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.
Sender
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 507
Založený: 26.05.2008
Karma: 1


Naspäť na C,C++,C#

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 0 hostí.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.66 sekúnd