C++ case (interval)

Programovacie jazyky, rady, poradňa...
Mick_14
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 458
Registrovaný: 07 aug 2008, 18:44

C++ case (interval)

Príspevok od používateľa Mick_14 »

Ako zapíšem v C++ do case napr.
v 1. prípade od 0 do 20
v 2. prípade od 21 do 40
v 3. prípade od 41 do 60
v 4. prípade od 61 do nekonečna ? :)


cout << "Zadajte dlzku trasy v kilometroch << endl;
cin >> dlzka;
switch (dlzka)
{
case 1:
cena=0.7;
break;
case 2:
cena=0.6;
break;
case 3:
cena=0.5
default:
cena=0.35;
}
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: C++ case (interval)

Príspevok od používateľa metthal »

Nijak, len cez if ... else if ... else if atd
Baseilos
Light Expert
Light Expert
Príspevky: 57
Registrovaný: 01 máj 2011, 2:15

Re: C++ case (interval)

Príspevok od používateľa Baseilos »

Predpokladam, ze dlzka cesty ovplyvnuje cenovu triedu. Takze:

Kód: Vybrať všetko

enum CenovaTrieda {TARIFA1, TARIFA2, TARIFA3, TARIFA4};

CenovaTrieda urciCenovuTriedu(unsigned int vzdialenost) {
  if (vzdialenost <= 20)
     return TARIFA1;
  if (vzdialenost <= 40)
     return TARIFA2;
  if (vzdialenost <= 60)
     return TARIFA3;
  return TARIFA4;
}

double urciCenu(unsigned int vzdialenost) {
   double cena = 0;
   switch(urciCenovuTriedu(vzdialenost) {
      case TARIFA1:
         cena = 0.7;
         break;
      case TARIFA2:
         cena = 0.6;
         break;
      case TARIFA3:
         cena = 0.5;
         break;
      default:
         cena = 0.35;
         break;
   }
   return cena;
}
jon
Amateur
Amateur
Príspevky: 28
Registrovaný: 17 okt 2009, 13:43

Re: C++ case (interval)

Príspevok od používateľa jon »

ja viem ze otazka bola na case , ale nebolo by to jednoduchsie takto a nespekulovat so switch/case
ja viem moze to byt zadanie na ulohu trebars , ale nie je to komplikovanie si zivota
nie som ziadny odbornik do programovania , ak ma niekto chut tak mi to prosim vysvetlite ... dik

Kód: Vybrať všetko

int main()
{
	double dlzka;
	cout << "Zadajte dlzku trasy v kilometroch" << endl;
	cin >> dlzka;
	if (dlzka>60) cout << "cena je " << 0.35;
	else if (dlzka>40) cout << "cena je " << 0.5;
	else if (dlzka>20) cout << "cena je " << 0.6;
	else cout << "cena je " << 0.7;
	cin.get();
	cin.get();
	return 0;
}
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ case (interval)

Príspevok od používateľa audiotrack »

toto tvoje je komplikovanie si života. Predošlé riešenie je omnoho prehladnejšie a aj jeho údržba (pridanie nejakej podmienky..) je jednoduchšia
Napísať odpoveď