Stránka 1 z 2

Problém s programování if/else C++

Napsal: 19 črc 2015, 09:04
od arduino2015

Kód: Vybrat vše

#include<iostream>
#include <windows.h>
using namespace std;

//returns the current attributes
WORD GetConsoleTextAttribute(HANDLE hCon)
{
	CONSOLE_SCREEN_BUFFER_INFO con_info;
	GetConsoleScreenBufferInfo(hCon, &con_info);
	return con_info.wAttributes;
}
int main(void)
{
	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	const int saved_colors = GetConsoleTextAttribute(hConsole);

	SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
	cout << "Zadejte Vas vek: " << endl;
	SetConsoleTextAttribute(hConsole, saved_colors);
	int vek;
	cin >> vek;
	[b]if (vek % 2 == 0)[/b]
	if (vek > 122)
		cout << "Nepis blbosti, nejstarsi clovek - Francouzka Jeanne Louise Calmentova, zila 122 let a 164 dni :-)\n";
	else
	if (vek <= 12 || vek >= 65)
		cout << "Mate vstup zadarmo.";
	else
		cout << "Musite platit.";
	[b]else
		out << "SPATNE ZADANA HODNOTA!";[/b]
	system("PAUSE");
		return 0;
}
Ahoj, snažil jsem se přidat podmínku, že to bude kontrolovat zadání celého čísla a ZDA TO VŮBEC JE ČÍSLO, ale vždy mi to vyhodí syntax error (tučně jsou příkazy, definující podmínku).

Napsal: 19 črc 2015, 09:23
od fero_b
Vsak nad tym uz else mas ktore patri k if nad tym..
Bud pridaj ku tomu else nad tym este if, teda budes mat
if (podmienka)
else if (podmienka)
else

alebo

if (podmienka)
else
if(podmienka)
else


Ty si napisal

if(podmienka)
else
else

To nedava logiku, kedy ma ist do prveho else a kedy do druheho?

Napsal: 19 črc 2015, 15:16
od AB1
Dvojice if-else jou podle mne správně.
Pokud je to opravdu použitý kód, nemá v třetím řádku zdola být cout << místo out << ?

2.
Podmínka
if (vek % 2 == 0)
znamená: jestliže číslo "vek" je sudé
Jaký to má smysl?

Napsal: 19 črc 2015, 19:04
od fero_b
ako spravne?..doplnim zatvorky a zarovnanie aby to bolo vidiet

if (vek > 122)
{
cout << "Nepis blbosti, nejstarsi clovek - Francouzka Jeanne Louise Calmentova, zila 122 let a 164 dni :-)\n";
}
else
{
if (vek <= 12 || vek >= 65)
{
cout << "Mate vstup zadarmo.";
}
else
{
cout << "Musite platit.";
}
else //TENTO ELSE NEMA ZIADEN IF!!JASNEZE SYNTAX ERROR
out << "SPATNE ZADANA HODNOTA!";[/b]
}
system("PAUSE");
return 0;
[/b]

Napsal: 20 črc 2015, 04:32
od AB1
fero_b:
Já tam vidím 3 if a 3 else.
Chybí ti tam řádek
if (vek % 2 == 0)

Kód: Vybrat vše

void main()
{
   [b]if (vek % 2 == 0)[/b]
          if (vek > 122)                          cout << "Nepis blbosti\n";
          else
             if (vek <= 12 || vek >= 65)          cout << "Mate vstup zadarmo.";
             else                                 cout << "Musite platit.";
   [b]else                                        cout << "SPATNE ZADANA HODNOTA!";[/b]
   
   system("PAUSE");
      return 0; 
}

Napsal: 20 črc 2015, 08:40
od fero_b
ab1: mas pravdu :-) som nejak prehliadol...

arduino2015: na ktorom riadku hovori ze syntax error?

Napsal: 09 srp 2015, 08:44
od arduino2015
PS:
do jaký míry může programátor používat při práci slovníky? Přijde mi, že psát programy je co do počtu výrazů stejně obšírné jako překládání. Co je standartní, tolerovaná hranice používání příruček/slovníků v práci?

Napsal: 09 srp 2015, 09:02
od Jeejda_teda_puvodne

Napsal: 09 srp 2015, 11:01
od arduino2015
Vím o manažerech, jejichž jediná kompetence je přátelství se šéfem a naučená rovnice - čím míň času, tím míň práce.

Pořvávat makejte rychleji umí každý. :)

Napsal: 10 srp 2015, 18:03
od mtajovsky
arduino2015 píše:PS:
do jaký míry může programátor používat při práci slovníky? Přijde mi, že psát programy je co do počtu výrazů stejně obšírné jako překládání. Co je standartní, tolerovaná hranice používání příruček/slovníků v práci?
To se neřeší. Používej co chceš (nejčastěji asi Google), hlavně ale musíš odevzdat práci včas a v požadované kvalitě.

Slovník - snad jen pro psaní dokumentace, když si člověk nemůže vzpomenout na správné slovo. On-line dokumentace ke knihovnám běžně při psaní kódu, dnes ale většinu věcí řeší intellisense.

Napsal: 10 srp 2015, 19:43
od Jeejda_teda_puvodne

Napsal: 10 srp 2015, 22:05
od mtajovsky
No, tak VC++ asi nebude typický nástroj pro RAD. Nyní je IntelliSense k dispozici i v Atmel Studiu 6, protože je založeno na MS frameworku. Není to otázka, jestli je to pro RAD nebo není, ale jestli má prostředí schopnost vybudovat databázi na základě parsingu hlavičkových souborů v projektu. Samozřejmě, kdo pracuje ve vi, gcc, make a gdb, ten to nemá.

Něco jako předchůdce už měl Borland C++. Stačilo vybrat klíčové slovo nebo identifikátor funkce a na F1 se zobrazila k tomu nápověda.

Napsal: 10 srp 2015, 23:39
od Jeejda_teda_puvodne

Napsal: 11 srp 2015, 00:48
od mtajovsky
Jeejda píše:To samé dnešní nápovědy - co se asi odehraje, když stisknu F1 na počítači bez netu..
To záleží na instalaci. Osobně dávám přednost lokální instalaci MSDN.

S tím RAD jsem to myslel tak, že natahat na formulář prvky, nastavit properties a dopsat několik řádků kódu a tím mít hotovou aplikaci master-detail, popřípadě si nechat vygenerovat kostru MDI aplikace v MFC wizardu je skutečně RAD. Na druhou stranu psát kód od main() výhradně z klávesnice, protože jde čistě o zpracování toku dat, žádné GUI, a kód by měl být přenositelný na MCU, už je klasika i když je to v IDE.

Napsal: 11 srp 2015, 08:13
od arduino2015
Jakej RAD?