Diskuze: C++ problém s výpisem maximalního a minimalního čísla
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Tak jsem se na to jen velice zběžně podíval a
omezení na 32 tisíc je určitě učí ve škole
Ahoj.
... pre istotu nikdy nepouzivaj premenne min, max (ale napr. i_min,
i_max),
lebo niektory prekladac to moze povazovat za funkciu, a nemusi Ti to
prekompilovat.
... nemal si tam ziaden cyklus, takze Ti prg. vygeneroval 1 cislo a za tym aj skoncil
... vlozil som Ti tam cyklus, a trochu poopravil. Mrkni sa na to.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int i_max = 0;
int i_min = 32767;
srand(time(NULL));
bool program = true;
do
{
int x = rand() % 101; // tuto by si mal nacitavat z klavesnice, a nie random cislo !!!
if (x < 1 || x > 1) /// zmenil som -1 na 1, pretoze (predpokladam), ze rnd NEvracia zapornu hodnotu, ba dokonca: zvysok po deleni 101 je: <0,100>
{ //
if (x > i_max)
{
i_max = x;
}
else
{
if (x < i_min)
{
i_min = x;
}
}
}
else
{
program = false;
}
} while (program == true);
cout << i_max << endl;
cout << i_min << endl;
cin.get();
cin.get();
}
... (stary) BorlandC
... MS-VisualStudio: C++ (tam je to define, nie priamo fcia, ak Ti ide o
toto...)
... v C# ... je to ale s velkym pismenom: Min ...
Ale myslim, ze podstata toho dotazu je v niecom inom.
Je velmi vhodne, ak sa programator nauci pouzivat nazvy premennych tak, aby sa
mu neplietli s funkciami, metodami.... a ak vie na prvy pohlad rozhodnut, ci to
je lokalna premenna alebo napr. clenska premenna triedy.
Topicka chyba u zacinajucich je, je si urobia premenne pre limity :
int od, do; ... a potom im to trva pekne dlho, kym zistia, ze 'do' je klucove
slovo pre cyklus.
Je fajn, ak si clovek hned od zaciatku zvykne na nejaky system, moze to iba
pomoct.
No, je tam funkce o stejném názvu. To stejně není dostatečný problém,
aby si to mohl překladač splést.
Pokud je to z důvodu, aby si to člověk nepletl, tak to řekni rovnou a
nezmiňuj čistě "min" a "max" s úplně jiným důvodem. Osobně tento systém
nemám rád, ale určitě funguje taky dobře.
K té typické chybě, to vážně člověku nepřijde divné, že zrovna to
slovo má jinou barvu, kupodivu stejnou jako if, else, while...? Pokud teda
používají alespoň zvýraznění syntaxe.
Zobrazeno 9 zpráv z 9.