fatalni problem s C++

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Coburn
Začátečník
Začátečník
Registrován: 12. čer 2006
Bydliště: Kobenhavn, Denmark
Kontaktovat uživatele:

Příspěvek od Coburn »

Moc diky :-) a jak je to s tema odkazama? napr kdyz mam v HTML <A href="www.google.com">xxx</A>, tak jak nejaky skupine pridelim název (v tomto pripade jak bych mel zapsat, ze se zrovna tahle konkretni skupina jmenuje "www.google.com")? Diky

EDIT: jak bys zapsal treba ze kdyz "a" je jedna, udela se clearscreen a ukaze se obrazek, kdyz se "a" rovna dvema, aby se aplikace na chvili ukoncila a kdyz je "a" rovno trema aby zobrazila treba skupinu "2", ktera by byla napr kalkulacka atd... -

int main {
-jak sem zapisu skupinu, na kterou budu chtit odkazovat-
if (a==1) goto -co ted mam napsat jako odkaz na skupinu s clr scr a obrazkem-
else if (a==2) -nakej ten cyklus s while-
else if (a==3) - odkaz na kalkulacku-
}

pak jeste jak napisu aby se zobrazoval obrazek a clr scr() mi z nakyho neznamyho duvodu nefunguje a nechce se ani nechat prelozit
jeste jednou diky
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

Nejak nerozumim co chces. goto nepracuje s zadnymi skupinami, je to pouze skok na nejake predem urcene misto v kodu. Pokud chces vytvaret nejake "skupiny", muzes si vytvorit vlastni funkci, ktera bude obsahovat vse potrebne pro vykonani daneho ukolu. Na prikladu treba

Kód: Vybrat vše

void Vypis()
{
 cout << "Bla bla bla" << endl;
 cout << "a" << endl;
 cout << "blaaa" << endl;
}

int main()
{
 ... //dosad si jakykoliv kod
 if(a == 1) Vypis(); //pokud a bude 1 zavolej funkci Vypis()
 ...
}
Zavolanim funkce Vypis() se provede vse co je v ni, takze vystup v konzoli (pokud a=1) by byl

Kód: Vybrat vše

Bla bla bla
a
blaaa
Jestli se mi to povedlo pochopit, tak tohle je to, co ocekavas od svych "skupin"
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Coburn
Začátečník
Začátečník
Registrován: 12. čer 2006
Bydliště: Kobenhavn, Denmark
Kontaktovat uživatele:

Příspěvek od Coburn »

THX, ty skupiny jsem teda pochopil, ale nechapu jak tam mam tomu prekladaci vysvetlit, jaka hodnota je true a jaka false.

napr.

void x1()
{
cout << "x1" << endl;
}

void x2()
{
cout << "x2" << endl;
}

int main {
cout << "do jaky skupiny chces skocit?" << endl;
cin >> XXXXXXXXX - co sem mam napsat? - XXXXXXXXXX;
a = x1;
b = x2;
if (a == 1) x1()
else if (b == 1) x2();
else main();
}
*/ jak by mela byt spravne zapsana "skupina" main, kdyz chci, aby kdyz napisu do "cinu" x1, mela by byt vyvolana funkce x1, kdyz napisu x2, mela by se vyvolat funkce x2 a kdyz ne, mel by se program vratit do funkce main()
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
Coburn
Začátečník
Začátečník
Registrován: 12. čer 2006
Bydliště: Kobenhavn, Denmark
Kontaktovat uživatele:

Příspěvek od Coburn »

S timhle jsem si jistej, ze je to blbost, ale chtel bych tomu prekladaci vysvetlit, ze kdyz napisu "x1" vykona funkci "x1()" a u "x2" to samy.

cin >> XXXXXXXXX - co sem mam napsat? - XXXXXXXXXX;
a = x1;
b = x2;
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

Ja bych ti spis doporucil precist nejakou knihu, nebo alespon online tutorial, protoze tohle jsou uplne zaklady. Tak jak si to predstavujes to zapsat nejde, je to slozitejsi, v tomto pripade treba

Kód: Vybrat vše

char Text[10]; //retezec deseti znaku
cin >> Text; //nacteni ze vstupu do promenne Text
if(!strcmp(Text, "x1")) x1(); //kdyz Text je "x1" zavolej x1()
else if(!strcmp(Text, "x2")) x2(); //kdyz Text je "x2" zavolej x2()
Jak vidis musis pouzit dodatecnou funkci strcmp(), ktera porovnava dva texty a jsou-li stejne vraci 0 (vic se toho snadno dozvis v dokumentaci). V podmince je to pak zkracene zapsano jako if(!strcmp()), coz znamena to same jako if(strcmp() == 0). V tomhle jednoduchem pripade jeste chybi omezeni delky zadavaneho textu, takze pokud zadas text delsi nez 10 znaku koledujes si o maler
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Coburn
Začátečník
Začátečník
Registrován: 12. čer 2006
Bydliště: Kobenhavn, Denmark
Kontaktovat uživatele:

Příspěvek od Coburn »

Hodne jsi mi pomohl, moc dekuju. Mas pravdu, prectu si nejakej online tutorial. Mel bych uplne posledni dotaz. Chtel bych mit v tom programu moznost "se pohybovat" (tim myslim ze kdyz vyvolal funkci treba x1(), tak bych mohl zadat jenom funkce x2() a x3() a x1 by nefungovala. Při vyvolání x2() by byl mozny jenom přestup do x1() a x3() atd. Nenasel jsem ale zpusob, jak bych tohlecto dostal do funkce jiny nez main(). "Ten stejnej "cin"(nevim jak to nazvat - ta řádka umožňující přestup mezi skupinami)" by se urcite nak dal dat nakonec aby se po vykonani kazde funkce zobrazila ta "vkladaci" radka, ktera by opet umoznovala vstup do vsech tri skupin - tipnul bych si pomoci while. Jestli to spravne chapu, tak se cely dej odehrava ve skupine main a ty ostatni se jenom vypisujou, je to tak?

void x1()
{
cout << "jses ve skupine cislo 1" << endl;
char Text[10];
cin >> Text;
if(!strcmp(Text, "x2")) x2();
else if(!strcmp(Text, "x3")) return(0);
}

void x2()
{
cout << "jses ve skupine cislo 2" << endl;
char Text[10];
cin >> Text;
if(!strcmp(Text, "x1")) x1();
else if(!strcmp(Text, "x3")) return(0);
}


int main() {
cout << "do jaky skupiny chces skocit?" << endl;
char Text[10];
cin >> Text;
if(!strcmp(Text, "x1")) x1();
else if(!strcmp(Text, "x2")) x2();
else if(!strcmp(Text, "x3")) return(0);

system("PAUSE");

return(0);
}
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

main() je vstupni funkce, kterou po spusteni vola operacni system. Cokoli je uvnitr ni program provede. Tvuj modelovy priklad by se dal udelat jednoduse pomoci dodatecne promenne, ktera by ukazovala, kde se prave nachazis.

Kód: Vybrat vše

int MinulaVolba = 0;
void x1()
{
 cout << "Volana 1. funkce" << endl;
 MinulaVolba = 1;
}

void x2()
{
 cout << "Volana 2. funkce" << endl;
 MinulaVolba = 2;
}

int main()
{
 char Text[10]; 
 bool Konec = false;
 while(!Konec)
 {
  cin >> Text; 
  if(!strcmp(Text, "x1") && MinulaVolba != 1) x1(); //pokud zadas "x1" a minula volba nebyla 1 (tzn "x1") zavolej funkci x1()
  else if(!strcmp(Text, "x2")  && MinulaVolba != 2) x2(); //obdobne
  else if(!strcmp(Text, "x3")) Konec = true; //kdyz zadas "x3" ukonci se smycka a program konci
  else cout << "Spatna volba" << endl;
 }

 system("PAUSE"); 
 return 0;
}
A prestan pouzivat ten termin skupiny, jednou jsou to funkce, tak jsou to funkce
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Coburn
Začátečník
Začátečník
Registrován: 12. čer 2006
Bydliště: Kobenhavn, Denmark
Kontaktovat uživatele:

Příspěvek od Coburn »

Jeste jeden detail.
da se neco udelat, aby se po vstupu textu neskocilo na dalsi radek?

dam priklad ze svyho zdrojaku
____________________________________
char Text[50];
cin >> Text;
if(!strcmp(Text, "Tirana") && s == "Albanie?") {col(160); cout << " spravne" << endl; col(112); score++;}
____________________________________
vystup vypada takhle
____________________________________
Jaky je hlavni mesto Albanie? Tirana
spravne
Jaky je hlavni mesto Andorry? Andorra_la_Vella
spravne
____________________________________
jak by se to dalo udelat (bez clearscreenu), aby se po zadani textu automaticky neodradkovalo, nebo aby se smazal posledni znak-enter?
____________________________________
Jaky je hlavni mesto Albanie? Tirana - spravne
Jaky je hlavni mesto Andorry? xxx - spatne
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
Coburn
Začátečník
Začátečník
Registrován: 12. čer 2006
Bydliště: Kobenhavn, Denmark
Kontaktovat uživatele:

Příspěvek od Coburn »

Nikdo?
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
Odpovědět

Zpět na „Programování a web“