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

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
arduino2015
Příspěvky: 158
Registrován: 30 led 2015, 01:00

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

#1 Příspěvek 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).

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#2 Příspěvek 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?

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#3 Příspěvek 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?

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#4 Příspěvek 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]

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#5 Příspěvek 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; 
}

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#6 Příspěvek od fero_b »

ab1: mas pravdu :-) som nejak prehliadol...

arduino2015: na ktorom riadku hovori ze syntax error?

Uživatelský avatar
arduino2015
Příspěvky: 158
Registrován: 30 led 2015, 01:00

#7 Příspěvek 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?

Uživatelský avatar
Jeejda_teda_puvodne
Příspěvky: 142
Registrován: 08 dub 2012, 02:00

#8 Příspěvek od Jeejda_teda_puvodne »

Naposledy upravil(a) Jeejda_teda_puvodne dne 25 říj 2016, 20:21, celkem upraveno 1 x.

Uživatelský avatar
arduino2015
Příspěvky: 158
Registrován: 30 led 2015, 01:00

#9 Příspěvek 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ý. :)

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#10 Příspěvek 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.

Uživatelský avatar
Jeejda_teda_puvodne
Příspěvky: 142
Registrován: 08 dub 2012, 02:00

#11 Příspěvek od Jeejda_teda_puvodne »

Naposledy upravil(a) Jeejda_teda_puvodne dne 25 říj 2016, 20:21, celkem upraveno 1 x.

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#12 Příspěvek 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.

Uživatelský avatar
Jeejda_teda_puvodne
Příspěvky: 142
Registrován: 08 dub 2012, 02:00

#13 Příspěvek od Jeejda_teda_puvodne »

Naposledy upravil(a) Jeejda_teda_puvodne dne 25 říj 2016, 20:22, celkem upraveno 1 x.

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#14 Příspěvek 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.

Uživatelský avatar
arduino2015
Příspěvky: 158
Registrován: 30 led 2015, 01:00

#15 Příspěvek od arduino2015 »

Jakej RAD?

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“