Author Topic: ZADANIA Z predmetu PROGRAMOVANIE  (Read 204700 times)

ursus

  • Hero Member
  • *****
  • Posts: 595
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #275 on: 14.04.2010, 00:25:57 »
nechce sa mi to cele prezerat ale

for(i=0;i<height;i++){
for(j=0;j<width;j++){
world[ i ][j] = newWorld[ i ][j];

      
      }
   }
ale chujovo naplnujes to pole nie? ved je predsa dvojrozmerne

Myslím, že tam pôvodne bolo [ i ][ j ], len sa to nahradilo BBCode kurzívou ;D
Ale i tak, nemozes dat world[ i ][j] = newWorld[ i ][j]; ked nemas nikde definovane world :D Co chces do toho newWrold prepisovat? podla toho pola hore by to malo byt world1[ i ][j] = newWorld[ i ][j];

no no mate pravdu aj s tym bbcode, nestudoval som to;D
So this router walks into the doctor’s office…
- Doctor, it hurts when IP.

cenki

  • Guest
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #276 on: 15.04.2010, 03:27:09 »
Poradil by mi niekto ako mam robit s polozkami v struct?
ak mam napr:
Code: [Select]
struct karel {
int x;
int y;
int direction;
} k;
a chcel by som pracovat s x, nastavit x na nejake cislo, inkrementovat a pod. Ako to mam vlastne robit?
Viem deklarovat tie hodnoty pomocou:
Code: [Select]
struct karel k = {1,1,90};
ak pouzijem napr. k.x=5; tak to neberie.

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #277 on: 15.04.2010, 03:45:05 »
ak pouzijem napr. k.x=5; tak to neberie.

Malo by to ísť. Akú chybu vypisuje pri kompilácii?

cenki

  • Guest
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #278 on: 15.04.2010, 03:48:05 »
Code: [Select]
struct world {
int height;
int width;
int world[MAX_HEIGHT][MAX_WIDTH];
} w;

w.height=5;   //riadok 12
w.width=6;
ak pouzijem napr. toto tak vyhadzuje:
12 C:\...\library.c syntax error before '.' token

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #279 on: 15.04.2010, 03:56:39 »
Pravdepodobne máš to priradenie mimo funkcie. Spustiteľný kód musí byť vnútri funkcie, nie len tak voľne pohodený.

Code: [Select]
void nejakaFunkcia() {
...
w.height=5;
w.width=6;
...
}

cenki

  • Guest
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #280 on: 15.04.2010, 15:57:14 »
Jaj, fakt, dakujem. Ja som to chcel pouzit mimo funkcie ako globalnu premennu... uz mi to ide spravne.
//edit:
Este ak mozem dat blbu otazku :D
je mozne (resp. mohlo by sa? Ked to funguje) pouzivat namiesto:
int funkcia(){ ... };
iba:
unsigned char funkcia(){ ... };
ak ma funkcia returnovat iba 1 a 0? Kedze int zabera v pameti 4Bajty pricom unsigned char len 1Bajt. Nieje to lepsie setrenie miestom? (Viem ze pri zadani ktore je na programovani to velku vahu nema, ale pre info...)

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #281 on: 15.04.2010, 18:01:53 »
Nedá sa jednoznačne povedať, čo je efektívnejšie, keďže každý kompilátor môže generovať iný strojový kód. Všeobecne by malo platiť, že ak chceme číselné hodnoty uložiť napr. do veľkého poľa, pamäťová efektivita je podstatná a mali by sme použiť čo najmenší vhodný typ, napr. char (resp. unsigned char). Pokiaľ máme malé množstvo premenných (typicky jednu) a prevádzame s nimi množstvo aritmetických operácií, mali by sme použiť takú veľkosť premennej, s ktorou procesor natívne pracuje - na x86 je to 32 bitov (int, resp. unsigned int).

V prípade návratovej hodnoty by som odporúčal použiť int, ale v podstate je to jedno, keďže číslené hodnoty sa vracajú v registri EAX bez ohľadu na ich veľkosť.

vojto

  • Guest
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #282 on: 16.04.2010, 05:02:51 »
Jaj, fakt, dakujem. Ja som to chcel pouzit mimo funkcie ako globalnu premennu... uz mi to ide spravne.
//edit:
Este ak mozem dat blbu otazku :D
je mozne (resp. mohlo by sa? Ked to funguje) pouzivat namiesto:
int funkcia(){ ... };
iba:
unsigned char funkcia(){ ... };
ak ma funkcia returnovat iba 1 a 0? Kedze int zabera v pameti 4Bajty pricom unsigned char len 1Bajt. Nieje to lepsie setrenie miestom? (Viem ze pri zadani ktore je na programovani to velku vahu nema, ale pre info...)

vygoogli si ako je v jazykoch nad cckom definovany bool

luky

  • Sr. Member
  • ****
  • Posts: 400
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #283 on: 16.04.2010, 18:25:58 »
ako spraviť aby som nemusel zadávať súradnice ručne ale rovno ich načítalo zo súboru. Cvičiaci mám vravel nejaký príkaz čo treba zadať do prikazoveho riadku a zaň meno textového súboru a karolxxx.exe

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #284 on: 16.04.2010, 20:14:55 »
Jedna možnosť je použiť priamo v programe funkcie na prácu so súbormi, v jazyku C je pomerne jednoduché zmeniť funkcie pracujúce so štandardným vstupom na prácu so súbormi.

Čo sa týka príkazového riadku, asi myslíš presmerovanie súboru na štandardný vstup. To sa dá napr. takto (predpokladáme, že vygenerovaný spustiteľný súbor má názov "karel"):
Code: [Select]
karel < subor_so_svetom.kw

petopetolkoo

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #285 on: 16.04.2010, 22:35:16 »
Code: [Select]
typedef struct Robot
{
 int x;
 int y;
 int direction;     
}karel ;


takto som si zadefinoval novy typ Robot
a ked dam napriklad:

Code: [Select]
karel.x=2;tak mi k tomu pise chybu
syntax error before '.' token

neviete preco ?
v prikladoch je to takisto ako mam aj ja, ale mne to nejde  ???

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #286 on: 16.04.2010, 23:26:48 »
Code: [Select]
karel.x=2;tak mi k tomu pise chybu
syntax error before '.' token

neviete preco ?
v prikladoch je to takisto ako mam aj ja, ale mne to nejde  ???

Uz sa to riesilo, staci citat...   :P

Pravdepodobne máš to priradenie mimo funkcie. Spustiteľný kód musí byť vnútri funkcie, nie len tak voľne pohodený.

petopetolkoo

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #287 on: 16.04.2010, 23:43:32 »
aha...ja som to cital pred par dnami, ale nevnimal som to nejak :D :P..
ale aj tak nerozumiem preco to tak ma byt ..
ved ked si dam napriklad int a=10; mimo seckeho a mi to funguje tak preco nefunguje moj novy typ =10 ?  :P ..nerozumiem tomu

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #288 on: 17.04.2010, 01:09:00 »
Lebo inicializácia premennej (priradenie počiatočnej hodnoty) sa môže vyskytovať len spolu s jej definíciou (určenie typu, názvu, vyhradenie miesta v pamäti).

Mimo funkcie teda môže byť:

Code: [Select]
int a = 10;
Ale už nie:
Code: [Select]
a = 10;
, lebo to je obyčajný príkaz priradenia a nie inicializácia.

petopetolkoo

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #289 on: 17.04.2010, 01:22:04 »
aha..ok ..dakujem za vysvetlenie.
.
a viem z tych karel.x a karel.y urobit nejako globalne premenne ?..l ???
« Last Edit: 17.04.2010, 01:28:32 by petopetolkoo »

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #290 on: 17.04.2010, 01:37:44 »
aha..ok ..dakujem za vysvetlenie.
.
a viem z tych karel.x a karel.y urobit nejako globalne premenne ?..l ???


Code: [Select]
typedef struct Robot
{
 int x=3;
 int y=4;
 int direction=90;     
}karel ;


???  ;D

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #291 on: 17.04.2010, 01:39:29 »
Ešte niečo - ak chceš rovno definovať aj premennú (resp. premenné), mal by si odstrániť kľúčové slovo typedef. Alebo, pokiaľ chceš použiť typedef, tak potom takto:

Code: [Select]
typedef struct {
...
} NOVY_TYP;

NOVY_TYP premenna;

petopetolkoo

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #292 on: 17.04.2010, 02:27:02 »
Quote
Kód:
typedef struct Robot
{
 int x=3;
 int y=4;
 int direction=90;     
}karel ;
 
Safya takto mi to nejde ..neviem ci je chyba u mna ale ked to dam takto tak mi pise toto
no semicolon at end of struct or union


to sulo: jj, to mam

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #293 on: 17.04.2010, 02:45:06 »
Code: [Select]
typedef struct Robot
{
 int x=3;
 int y=4;
 int direction=90;    
}karel ;


Takto určite nie. Existuje takýto spôsob inicializácie štrukúry:

typ premenna = {hodnota};
alebo:
typ premenna = {.clen = hodnota};

Napríklad:
Code: [Select]
Robot karel = {.x = 1, .y = 2};
Čo sa týka globálnych premenných: ak premennú definujeme mimo funkcie, je globálna. Ak je štruktúra globálna, k jej členom sa môže pristupovať odkiaľkoľvek. Takže neviem, čo tu tu treba riešiť.

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #294 on: 17.04.2010, 02:51:49 »
aha tipla som :D potom by teoreticky slo;
Code: [Select]
struct Robot
{
 int x;
 int y;
 int direction;     
}karel ;
int x=3;
Aj mimo funkcie,nie?

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #295 on: 17.04.2010, 02:57:46 »
Tá premenná "x" dole je niečo iné ako "karel.x". Malo by to byť takto:

karel.x = 3; (samozrejme niekde vo funkcii)

Ak nám tak veľmi vadí tá bodka, môžeme urobiť smerník:

Code: [Select]
int *p = &karel.x;
*p = 3;

, ale je to viac než zbytočné.

petopetolkoo

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #296 on: 17.04.2010, 03:00:54 »
Safya:to som tiez skusal :D ,ale na to co mi poradil sulo by som sam neprisiel :P :D

Sulo: uz mi to ide ..dakujem :P

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #297 on: 17.04.2010, 04:01:01 »
Tá premenná "x" dole je niečo iné ako "karel.x".
Ahaa :D
Mno ok, deprimujete ma, idem to uz robit  ;D ;D

petopetolkoo

  • Jr. Member
  • **
  • Posts: 68
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #298 on: 17.04.2010, 04:15:03 »
safiya ty sa neriadis podmienkou if(den==piatok.vecer) { zabava;oddych od skoly; }    ? :D :P ..

                                           

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: ZADANIA Z predmetu PROGRAMOVANIE
« Reply #299 on: 17.04.2010, 04:42:36 »
safiya ty sa neriadis podmienkou if(den==piatok.vecer) { zabava;oddych od skoly; }    ? :D :P ..

                                           
Nie, ja sa tym riadim cez tyden, ked som na intraku, lebo tam sa prinutit neda...  ;D Doma umieram od nudy, tak to ide lahsie :D A chcem mat z krku vsetko cim skor... a hlavne chcem byt mudra!!! :D A svetovy mier...  :puf: