Anonymní profil Matrix17 – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Matrix17 – Programujte.comAnonymní profil Matrix17 – Programujte.com

 

Příspěvky odeslané z IP adresy 85.207.17.–

Matrix17
C / C++ › Hadani oblibeneho cisla a oc…
25. 6. 2008   #77999

Případně pokud má mít proměná nějakou specifickou hodnotu jako ve tvém případě tak stačí když napíšeš tohle:



while(vlozene!=moje)

{
cin >>vlozene;
SmazVstup();
if(vlozene>moje)
cout<<"Hadane cislo je nizsi, opakujte pokus: ";
else if(vlozene<moje || vlozene>0)
cout <<"Hadane cislo je vyssi, opakujte pokus: ";
else
cout <<"!!!";
}

Ale pak bych doporučoval aby si jí prvě přiřadil nějakou hodnotu protože jinak by program nemusel fungovat správně. Čili by stačilo jí přiřadit jakoukoli hodnotu která nesplňuje podmínku, kterou máš ve while. Protože když dojde k zadání písmena tak se do načítané proměnné nic neuloží a zůstanou v ní původní data.

Matrix17
C / C++ › Hadani oblibeneho cisla a oc…
25. 6. 2008   #77998

Stačí použít tuhle funkci:



bool SmazVstup()
{
bool vstup = false;

if (cin.fail()) {
cin.clear();
SmazVstup();
vstup = true;
}
else
while (cin.get() != '\n')
continue;

return vstup;
}

Pak už stačí pouze napsat do hlavního bloku nebo kamkoli kde načítáš něco takovýhohle:


do {
cin>> ciselna_promenna;
} while (SmazVstup());

Matrix17
OS - Windows › XP s podporou DX10 ?
24. 6. 2008   #77898

Žádné XP nemají podporu DX10 jelikož ty jsou vázány na samotné jádro Vist a tudíž je jinde než tam nenajdeš. Pokud se ti ale podaří nějakou verzi win XP s DX10 najít a bude fungovat tak budeš asi první. DX10 je jen a výhradně pro Visty a navíc dávat jí teď do XP by nemělo smysl. Jelikož pro XP brzy skončí podpora. Nejsem si jist jestli na konci tohohle roku nebo v půlce příští případně jindy ale to se dá zjistit na stránkách nebo to tu někdo upřesní.

Matrix17
C / C++ › Ročníková práce
8. 6. 2008   #76221

To Sopta : Moc sem si to neprohlížel ale máš chybu už v deklaraci proměných jelikož tohle:



const int pocetStudentu = 2;
int pocetPredmetu, zobrazitUdaje = 0, pocetZnamek, soucet = 0, hledanaZnamka, hledanyPredmet, chybnaZnamka;
char student[pocetStudentu][30];
char predmet[pocetPredmetu][4];
int znamky[pocetStudentu][pocetPredmetu];

Je tak trochu problém tedy konkrétně text označený tučně. Jelikož nikde není stanoveno jak velké to pole vlastně je a tudíž tam může být jakákoli hodnota. Další spíš rada je že proměná možnost která je globální by měla být lokální a navíc ani není důvod aby byla globální. A pak máš trochu bordel v načítání prvků do pole a jejich zobrazováním. Konkrétně to nebudu vypisovat. Ale jako příklad:


for( int i = 0; i < pocetPredmetu; i++) {
cout << "Nazev " << i+1 << " predmetu: ";
cin >> predmet[i];
}

Jestli ti to jde spustit a "jenom" ti to nepočítá průměr tak tomu bych se teda divil. Jelikož když sem to zkoušel já tak to vždycky spadlo. A vůbec se tomu nedivím. Čili by to chtělo hodně dodělat.

Matrix17
C / C++ › Problem s reprezentaci strin…
20. 4. 2008   #71819

To klinki : Zřejmě si nepochopil pointu toho řešení. Spočívá v tom že by sis převedl číslo na znak a následně ho přidal do pole. Čili jen jeden cyklus ve kterým bys dělil deseti a výsledný číslo převedl na znak kterej by se uložil do pole. Nahoře sem to skrouhnul až moc.

Matrix17
C / C++ › Problem s reprezentaci strin…
20. 4. 2008   #71725

To klinki : Řešením je použít bezparametrický konstruktor a následně přiřadit stringu nazev hodnotu kterou chceš.
Příklad:



nadTrida::nadTrida()
{
nazev = "POLOZKA ";
switch (pocet) {
case 1: nazev += '1';
break;
atd.
}
}


Mimo to ty středníky za těma složenejma závorkama u metod tý třídy tam bejt nemusí.
Přičemž tyhle řádky se mi taky zdaj divný:


static unsigned short int nadTrida::pocet = 0; //hlavně tenhle
nadTrida::nadTrida():
trida({'P', 'O','L', 'O', 'Z', 'K', 'A', ' ', nadTrida::pocet, '\0'})
{pocet++;}

Matrix17
C / C++ › cin &gt;&gt; &quot;exit&quot;
8. 4. 2008   #70788

To Mikos : String je třída nikoli řetězec. Je definována v knihovně string. Tato třída má definované kontruktory, přetěžuje některé operátory atd. Zjednodušeně řečeno je to "řetězcová proměnná" (doufám, že jsem tímto výrokem nikoho příliš nerozčílil). Velmi totiž ulehčuje práci s řetězci.
Tady je o něm něco málo (případně zkus google):
http://www.builder.cz/art/cpp/cpp_string.html
http://www.cplusplus.com/reference/string/string/

Matrix17
C / C++ › cin &gt;&gt; &quot;exit&quot;
7. 4. 2008   #70741

To Mikos : Tak napiš co na tom nechápeš. To jak sme diskutovali toho si nemusíš všímat.

Stačí svůj kód takhle doplnit:



#include <iostream>
#include <string>

int main()
{
string retezec;

while (retezec != "exit") {
//nějaký ty výpis pomocí objektu cout
getline(cin, retezec); //načte do retezec text
}
return 0;
}


Hotovo nic na tom není. Případně si sežeň nějakou knížku nebo nějakej tutoriál na netu (např. tady na programujte).

Matrix17
C / C++ › cin &gt;&gt; &quot;exit&quot;
7. 4. 2008   #70721

To tmi : On si tím pomůže jelikož třída string opravdu operátory porovnání přetěžuje. Pochybovat o tom můžeš ale taky si to můžeš vyzkoušet.

Matrix17
C / C++ › cin &gt;&gt; &quot;exit&quot;
6. 4. 2008   #70692

To Wizard : I kdyby předělal ten char na pole tak by stejně nemohl použít operator porovnání.

To Mikos : Pokud bys trval na tom, že chceš aby ti uživatel zadal slovo "exit" a pak se ukončil program. Můžeš použít například třídu string.
Takto:



#include <string>
string retezec;
while (retezec != "exit") {
...
}

Matrix17
C / C++ › Viac návratových hodnôt trie…
27. 1. 2008   #64150

Ano lze přetížit operátor výstupu << a pomocí něj tuto nebo jakoukoli jinou proměnou vypsat ale musíš pužít objekt cout. U printf nevím o způsobu který by splňoval to co chceš ale jestli je to možné tak mě jistě někdo doplní. Mimo to píšeš v C++ a používáš funkci pro výpis z C nechápu proč.

Matrix17
Hardware › Tiskárna
9. 11. 2007   #54128

To Decide : Předně bych nikdy neistaloval ovladače a až pak připojil tiskárnu (nebo jiné zařízení). Lepší je prvně připojit a pak nainstalovat. Ale i tak bude spíš problém se samotným USB nebo zdířkou u tiskárny případně jak napsal micro.21 s kabelem. Čili to zkus hodit do jinýho protu nebo smazat ovladače, připojit do jinýho portu a pak je znova nainstalovat.

Matrix17
C / C++ › faktorial
31. 10. 2007   #53452

Vpodstatě by se to dalo řešit i rekurzí akorát by byl potřebnej dostatečně velkej datovej typ. Long Long Double je na to malej (na 1000!) ale na menší čísla proč ne...



long long double faktorial(long long double cislo)
{
if (cislo != 2)
cislo = faktorial(cislo - 1) * cislo;
return cislo;
}

Matrix17
C / C++ › kde ej chyba
26. 10. 2007   #52804

To tmi : Když použiješ přetypování tak tím nedosáhneš zaokrouhlení ale oříznutí desetinné části a přitom riskuješ, že o to číslo který takhle "zaokrouhluješ" příjdeš jelikož reálné datové typy jsou větší než ty celočíselné. Takže já bych to přetypováním rozhodně neřešil ale jestli si myslíš, že to je lepší "zaokrouhlit" přetypováním než funkcí, která je na to určená, tak se s tebou hádat nebudu.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý