Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Yossarian

Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 22. červen 2009, 11:11:45 Předmět: |
|
|
quas4 napsal: |
zde predavas nulove pointery a ve funkci cas() je neco takoveho nepripustne. |
prave ze neni, on si ty pointery pak prepisuje pointerama na lokalni funkce (pravdepodobne chapu myslenkovy postup, ale c neni php..) |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 22. červen 2009, 13:41:19 Předmět: |
|
|
pointery skusam prvy krat.
povodne to bol len ten kod v cas.cpp.ten cyklus while je na to aby sa to neustale vypisovalo pretoze ta podmienka sa nikdy nesplni.proste bezia sekundy a podla toho sa pripocitavaju ostatne(min,hod,den...).dole nizsie sa to podla hodnot "den" a "mes" rozhoduje aky string sa ulozi do premennych "den_meno" a "mes_meno".nakoniec cyklu sa to vsetko vypise.tento skript fungoval.neskor som chcel skusit dostat tie premenne do ineho skriptu(suboru) v jednom projekte a tak sa to vyvinulo v tejto debate.teraz je to printf v cas.cpp zakomentovane lebo by som to zbytocne vypisoval.ja to chcem vypisat v tom druhom skripte co je v main.cpp. chcem sa len naucit nieco nove tak ma hned neodsuzujte ze nic neviem.  |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 22. červen 2009, 14:43:44 Předmět: |
|
|
jjj
Naposledy upravil koso dne 24. červen 2009, 14:43:19, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 22. červen 2009, 18:14:46 Předmět: |
|
|
stiahol to niekto?chapete o co sa snazim?chcem dostat hodnoty premennych z cas.cpp do main.cpp.pomoze mi s tym niekto? |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1051
|
Zaslal: 22. červen 2009, 18:46:23 Předmět: |
|
|
no treba vediet obory (scope) platnosti premennych. premenna je platna a pouzitelna v tom bloku ohrenicenych zatvorkami {} a vsetky podbloky.
teda globalna premenna mimo vsetky {} bloky je platna vsade. takze napr v for(int i=0;i<10;++) cykle je i platna iba v tele toho cyklu. inde ti prekladac vyhodi chybu (dufam ze len VS6 malo tu chybu ze i bolo platne aj nadalej)
tak isto to je aj
kód: |
if(){ int ol; //zase je ol platna len do konca bloku} |
dokonca mozes v kode pouzit len samotny blok bez nicoho.
kód: |
//nejaky kod
{
int ll;
//tu plati ll
}
//tu uz nie |
a ako som uz napisal predtym. tak pouzi funkciu s parametrami ako pointre
kód: |
void cas(int *p)
{
*p = 963;
} |
a pouzivaj takto
_________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 22. červen 2009, 18:56:38 Předmět: |
|
|
a vyhadzovalo by mi to aktualnu hodnotu?da sa nejako dosiahnut ze ked zavolam funkciu cas() tak tie premenne ktore prevezmu hodnoty na ktore ukazuju pointre sa budu menit tak ako vo funkcii cas?
nou: dakujem ze si sa mi ozval |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 22. červen 2009, 19:46:00 Předmět: |
|
|
neviem ci som to pochopil spravne ale z toho co som si precital o pointroch v knihe, mi z toho vychadza to ze referencny operator & sa pouziva na priradenie adresy premennej napr
kód: |
int *p_u;//pointer
p_u = &i;//priradenie adresy |
cize ked to spravim ako v kode horeuvedenom, nepriradim premennej c adresu pointra ktory je ako parameter v cas()?netvrdim ze to je tak, ani som to zatial neodskusal lebo som sa nedostal k notebooku.prosim o objasnenie tohoto aj toho vo vissom prispevku.dakujem |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 22. červen 2009, 19:56:55 Předmět: |
|
|
Je to přesně naopak. Vezme se totiž adresa proměnné c a předá se jako parametr. Vždyť to bylo i v tom mém příkladu s funkcí nastav .. _________________ Mám strach |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 23. červen 2009, 05:38:26 Předmět: |
|
|
uz som prisiel na to co je zle:
kód: |
int main()
{
int a,b,c,d,e,f,g,h=2,i;
cas(&a,&b,&c,&d,&e,&f,&g,&i);
printf("%d\n",i);
system("pause");
} |
toto vsetko je v poriadku okrem toho ze ta funkcia cas() ktoru zavolam sa nikdy neskonci tym padom sa to k tomu printfu ani nedostane a preto mi konzola nic nevypise.neviete mi poradit ako spravit cyklus ktory bezi pocas celeho behu programu ale popri tom bezi aj nieco ine?
zase vopred dakujem. |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 23. červen 2009, 07:33:40 Předmět: |
|
|
koso napsal: |
Neviete mi poradit ako spravit cyklus, ktory bezi pocas celeho behu programu, ale popri tom bezi aj nieco ine? |
Řešením je druhé vlákno . Ale být tebou, nejprv bych si přečetl základy C. _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 23. červen 2009, 08:35:34 Předmět: |
|
|
Jo, vlákno. Být tebou bych se do toho v nejbližším roce ale vůbec nepouštěl. Ono to určitě půjde udělat i jinak - napsat ten cas tak, aby vzdy provedl jen malý update a za chvíli ho zavolat znova. _________________ Mám strach |
|
Návrat nahoru |
|
 |
MD

Založen: 29. 07. 2007 Příspěvky: 437 Bydliště: Praha
|
Zaslal: 23. červen 2009, 08:38:16 Předmět: |
|
|
Ale koso urcite nechce 2. vlakno
Spise bych si tipnul ze potrebuje nahodit "herni" nekonecnou smycku a ta muze vypadat treba takhle:
kód: |
while(!konec) {
precti_vstupy_od_uzivatele();
spocti_dalsi_krok();
vykresli_vse();
sleep(30);
cas += 30;
}
|
Takze koso jestli chces udelat hodiny, tak si udelej while smycku a uvnitr si cti z klavesnice, kdy uzivatel zmackne Esc (at to muzes zastavit), dale zjistuj kolik je hodin a pak to vypis pomoci printf. (Printf ma teda tu nevyhodu, ze ti vzdy udela novy radek na konzoli.) A nakonec pomoci nejakeho sleepu to nachvilku pauzni.
Poznamka ve skutecnych hernich smyckach se mnohem sloziteji pracuje s casem. Prikazy ve smycce totiz trvaji pokazde jinak dlouho a proto se i jinak dlouho ceka na dalsi takt. A dale se tam delaji ruzna zviractva, pokud hra cas prideleny pro jeden takt pretahne. _________________ - play with objects - www.krkal.org - |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 23. červen 2009, 12:14:49 Předmět: |
|
|
dakujem za pomoc  |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 23. červen 2009, 12:46:41 Předmět: |
|
|
A pomohlo to, nebo sis už konečně otevřel nějakou knížku? Nemám nic proti začátečníkům, klidně budu odpovídat na dotazy ohledně nějakejch ukázkovejch příkladů v knížce nebo i tutoriálu z internetu, když něčemu nebudeš rozumět. Ale ne prosím to co se předvádí na 5 stranách tohoto vlákna. Divím se, že už to někdo nezamkl. _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 23. červen 2009, 13:16:34 Předmět: |
|
|
knizku uz mam rozcitanu dost dlho.a zaklady C zvladam.toto mi pomohlo a objasnilo vela veci. |
|
Návrat nahoru |
|
 |
|